Techniques for context sensitive overlays

ABSTRACT

Techniques for context sensitive overlays, comprising a social networking application. The social networking application may include, among other components, a social networking overlay management component to receive a request from a mobile device to determine a list of aggregate overlay information and user context information, and providing the list of aggregate overlay information and user context information to the mobile device, a context determination component to determine the user context information representative of at least one user context based at least partially on user profile information, location information, calendar event information, and/or external event information, and an overlay selection component to generate the list of aggregate overlay information based at least partially on the user profile information, overlay promotion information, and user context information.

BACKGROUND

A social networking system, such as a social networking website, enablesone or more users to interact with each other in the social networkingsystem by providing social networking services to the one or more users.With the recent increase in mobile devices, numerous users have alsobegun using their mobile devices to interact with the one or more usersin the social networking system such, as, for example, social networkmessaging services. However, this increase in use of mobile devices toaccess social networking services has also placed an increased demandfor improvements in social network messaging services and socialnetworking services.

SUMMARY

The following presents a simplified summary in order to provide a basicunderstanding of some novel embodiments described herein. This summaryis not an extensive overview, and it is not intended to identifykey/critical elements or to delineate the scope thereof. Its solepurpose is to present some concepts in a simplified form as a prelude tothe more detailed description that is presented later.

Various embodiments are generally directed to techniques for contextsensitive overlays. Some embodiments are particularly directedtechniques for management of context sensitive overlay user interface(UI) elements. In one embodiment, for example, an apparatus may includea processor circuit, memory operatively coupled to the processorcircuit, the memory to store a social networking application comprisinga social networking overlay component for execution by the processorcircuit. The social networking overlay component may comprise a socialnetworking overlay management component to receive a request from amobile device to determine a list of aggregate overlay information anduser context information, and providing the list of aggregate overlayinformation and user context information to the mobile device, a contextdetermination component to determine the user context informationrepresentative of at least one user context based at least partially onuser profile information, location information, calendar eventinformation, and/or external event information, and an overlay selectioncomponent to generate the list of aggregate overlay information based atleast partially on the user profile information, overlay promotioninformation, and/or user context information. Other embodiments aredescribed and claimed.

To the accomplishment of the foregoing and related ends, certainillustrative aspects are described herein in connection with thefollowing description and the annexed drawings. These aspects areindicative of the various ways in which the principles disclosed hereincan be practiced and all aspects and equivalents thereof are intended tobe within the scope of the claimed subject matter. Other advantages andnovel features will become apparent from the following detaileddescription when considered in conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A illustrates an exemplary embodiment of a context sensitiveoverlay system.

FIG. 1B illustrates an exemplary embodiment of a device, which may be amobile device, comprising one or more applications.

FIG. 1C illustrates an exemplary embodiment of the overlay componentwhich may be operatively coupled to a social application and/ormessaging application.

FIG. 2A illustrates an operating environment of a social networkingoverlay component.

FIG. 2B illustrates an operating environment of overlay UI elementsstored in an overlay datastore.

FIG. 3 illustrates an exemplary image/video share user interface view.

FIG. 4 illustrates a composite overlay preview user interface view.

FIGS. 5A-5D illustrate embodiments of composite overlay user interfaceviews.

FIG. 6 illustrates an exemplary logic flow for at least determining listof aggregate overlay information and user context information.

FIG. 7 illustrates an exemplary embodiment of a computing architecture.

DETAILED DESCRIPTION

Various embodiments are generally directed to context sensitiveoverlays. Typically, a mobile application may enable users to takepictures and/or videos of themselves or of others using a camera ontheir mobile device which may be shared between and among users in asocial networking system. To provide users with a more entertainingexperience in sharing their pictures and/or videos, a context sensitiveoverlay system (e.g., context sensitive overlay system 100) may enableusers to add one or more graphical features (e.g., overlays, filters,props, etc.) or overlay user interface (UI) elements prior todistribution via the social networking system. In various embodiments,the added overlay UI elements may include, but is not limited to,animated images, short videos, and/or static images.

To ensure that added overlay UI elements are properly positioned,oriented and/or proportioned with respect to the appropriate features(e.g., faces, eyes, mouth, etc.) in images and/or videos for sharing,the context sensitive overlay system may utilize image recognition toposition, orient and/or proportion the added overlay UI elements withrespect to any detected features in an image and/or video for sharing.

To provide users with additional flexibility in the arrangement andselection of one or more overlay UI elements, the context sensitiveoverlay system may enable users to manually modify the one or moreattributes associated one or more overlay UI elements, such as, forexample, position, size, orientation, color, text, and the like.Furthermore, the context sensitive overlay system may also enable usersto add their own overlay UI elements based at least partially onexisting images the user has in possession on their device.Additionally, the context sensitive overlay system may also enable usersto draw a new overlay UI element or modify an existing overlay UIelement with additional drawings. Furthermore, the context sensitiveoverlay system may enable users to add multiple overlay UI elements toan image and/or video for sharing and/or enable users to add multipleimages and/or videos with multiple overlay UI elements for sharing inone composite overlay image or video.

To provide users with ease of selecting one or more overlay UI elements,the context sensitive overlay system may render and visually present agrid of composite overlay UI elements, where each composite overlay UIelement may include one or more overlay UI elements in proper position,orientation, and/or proportion with respect to an image and/or video theuser intends to share. Additionally or alternatively, each compositeoverlay UI element may also visually present a live preview (e.g., innear real time) of the images and/or video currently being captured innear real time by the camera of the mobile device with the one or moreoverlay UI elements being visually presented in proper position,orientation, and/or proportion with respect to one or more featuresdetected in the near real time images and/or video.

To ensure that the overlay UI elements visually presented to the usersare relevant, the context sensitive overlay system may determine usercontext information associated with a user. The user context informationmay identify one or more user contexts (e.g., location of the user,interests of the user, events associated with the user, external eventssuch as holidays, weather, associated with the user, conversation topicsof the user, etc.) and may be utilized by the context sensitive overlaysystem in selecting the relevant overlay UI elements based at leastpartially on the one or more user contexts that are substantially nearor at the time the user is sharing one or more images and/or videos,i.e., context sensitive overlay UI elements. Additionally, the contextsensitive overlay system may rank the selected overlay UI elements forvisual presentation to the user on a device based at least partially onthe overlay UI elements that the user already owns and overlay UIelements the user does not already own.

To provide various entities with advertising opportunities, the contextsensitive overlay system may further bias the selection process of oneor more overlay UI elements for visual presentation to a user on amobile device based at least partially on overlay promotion informationwhich may representative of one or more entities that have providedfinancial interests to the operators and/or owners of the contextsensitive overlay system.

To provide incentives for users to share one or more overlay UI elementsand consequently, increase brand recognition and/or advertisementopportunities, the context sensitive overlay system may further providepromotions and/or discounts for users who share one or more overlay UIelements and/or the recipient users who received the one or more overlayUI elements. As a result of these improvements discussed above andelsewhere, the users' experiences in sharing images and/or videos on oneor more devices may be greatly improved.

With general reference to notations and nomenclature used herein, thedetailed descriptions which follow may be presented in terms of programprocedures executed on a computer or network of computers. Theseprocedural descriptions and representations are used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art.

A procedure is here, and generally, conceived to be a self-consistentsequence of operations leading to a desired result. These operations arethose requiring physical manipulations of physical quantities. Usually,though not necessarily, these quantities take the form of electrical,magnetic or optical signals capable of being stored, transferred,combined, compared, and otherwise manipulated. It proves convenient attimes, principally for reasons of common usage, to refer to thesesignals as bits, values, elements, symbols, characters, terms, numbers,or the like. It should be noted, however, that all of these and similarterms are to be associated with the appropriate physical quantities andare merely convenient labels applied to those quantities.

Further, the manipulations performed are often referred to in terms,such as adding or comparing, which are commonly associated with mentaloperations performed by a human operator. No such capability of a humanoperator is necessary, or desirable in most cases, in any of theoperations described herein which form part of one or more embodiments.Rather, the operations are machine operations. Useful machines forperforming operations of various embodiments include general purposedigital computers or similar devices.

Various embodiments also relate to apparatus or systems for performingthese operations. This apparatus may be specially constructed for theneeded purpose or it may comprise a general purpose computer asselectively activated or reconfigured by a computer program stored inthe computer. The procedures presented herein are not inherently relatedto a particular computer or other apparatus. Various general purposemachines may be used with programs written in accordance with theteachings herein, or it may prove convenient to construct morespecialized apparatus to perform the needed method steps. The neededstructure for a variety of these machines will appear from thedescription given.

Reference is now made to the drawings, wherein like reference numeralsare used to refer to like elements throughout. In the followingdescription, for purposes of explanation, numerous specific details areset forth in order to provide a thorough understanding thereof. It maybe evident, however, that the novel embodiments can be practiced withoutthese specific details. In other instances, well known structures anddevices are shown in block diagram form in order to facilitate adescription thereof. The intention is to cover all modifications,equivalents, and alternatives consistent with the claimed subjectmatter.

FIG. 1A illustrates an exemplary embodiment of a context sensitiveoverlay system 100. In various embodiments, the context sensitiveoverlay system 100 may comprise a social networking system 101 (e.g.,Facebook, Google+, LinkedIn, etc.) and one or more devices 102-a (e.g.,server devices, mobile devices, computing devices, networking devices,etc.) for providing social networking services to enable various users(e.g., persons, businesses, hardware/software components, computingdevices, etc.) to communicate and interact between and among each other.To provide the social networking services to various users, the one ormore devices 102-a associated with various users may be operativelycoupled to the social networking system 101 via communications network103 (e.g., internet, intranet, cellular network, etc.) utilizing variouscommunications mediums (e.g., wired, wireless, fiber optic, etc.) and/orcommunications standards (e.g., Ethernet IEEE 802.3, Wireless IEEE802.11, WiMAX IEEE 802.16, Global Systems for Mobile Communications(GSM), Enhanced Data Rates for GSM Evolution (EDGE), Long Term Evolution(LTE), etc.).

It is worthy to note that “a” and “b” and “c” and similar designators asused herein are intended to be variables representing any positiveinteger. Thus, for example, if an implementation sets a value for a=2,then a complete set of devices 102-a may include devices 102-1 and102-2. Similarly, if an implementation sets value for a=2, then acomplete set of applications 124-a-1 may include applications 124-1-1and 124-2-1. Furthermore, if an implementation sets value for b=6, thena complete set of applications 124-1-b may include applications 124-1-1,124-1-2, 124-1-3, 124-1-4, 124-1-5, and 124-1-6. The embodiments are notlimited in this context.

To utilize the social networking services provided by the socialnetworking system 101, each device of the one or more devices 102-a maybe configured to execute at least applications 124-a-1 and/orapplications 124-a-2. The applications 124-a-1 and/or 124-a-2 may beconfigured to communicate with the social networking system 101 viacommunications network 103 to provide the social networking services tothe users. To maintain a persistent presence and ensure secure access tothe social networking system 101, each user of applications 124-a-1and/or 124-1-a-2 may be associated with a user account in the socialnetworking system 101. Each user account may be represented by useraccount information. The user account information for each user mayinclude, but is not limited to, user account identifier (e.g., phonenumber, e-mail address, etc.), user account authentication token (e.g.,user account password, physical and/or virtual security tokens, etc.),and/or any other information relevant to the authentication andauthorization of each user. To ensure authorized access of each user,the social networking system 101 may be further configured toauthenticate each user based on at least a portion of the user accountinformation (e.g., user account identifier, user account authenticationtoken, etc.) provide by each user and received from one or more devices102-a. Once a user having the associated user account has beensuccessfully authenticated, the social networking system 101 may providethe application (e.g., application 124-1-1 and/or application 124-1-2)with one or more time limited access tokens having a set of accesspermissions associated with the user account of the user to retrieve,store, modify, update, and/or otherwise access information within aspecific time period in the social networking system 101 utilizing theapplication.

Each user account may be further associated with a user profilerepresentative of a user's presence within the social networking system101. Each user profile associated with each user may be represented byuser profile information, which may include, but is not limited to, useridentifier information (e.g., a unique identifier that identifies theuser and the user profile information), user biographic and/ordemographic information, (e.g., user name information which may include,but is not limited to, a first, middle, and/or last name of the user, anentity name associated with the user, contact information of the user,birth date of the user, age of the user, sex of the user, etc.), userprofile media information (e.g., profile image(s) of the user, a focuseduser profile image of the user, etc.), user location information (e.g.,the hometown location of the user, the current location of the user, thework location(s) of the user, etc.), user time zone information (e.g.,time zone of the user, etc.), user social connections information (e.g.,a list of friends, family members, coworkers, teammates, classmates,business associates, of the user), user groups membership information,user interest information (e.g., the interests listed by the user,movies listed by the user, music listed by the user, books listed by theuser, approvals or “likes” of the user, or any other information thatmay identify the user's interest), user employment history information(e.g., list of current and/or past employers of the user), user socialmessages information (e.g., one or more social networking messages wherethe user is a recipient), user event information (e.g., one or moresocial events associated with the user, etc.), user profile discussioninformation (e.g., one or more profile activities, such as, profileposts in the user profile), user search information (e.g., one or moresearch queries inputted by the user), user overlay ownership information(e.g., references to one or more overlays UI elements stored in theoverlay datastore 112-3 shared with, purchased by, and/or otherwiseowned by the user), user overlay usage information (e.g., references toone or more overlay UI elements that are shared with, purchased by,and/or otherwise owned by the user and the associated usage frequencyfor each overlay UI element, etc.), user overlay preferences information(e.g., preference information to indicate whether to authorize thesocial networking system 102 and/or one or more devices 102 to scan orotherwise analyze user profile information such as one or more socialuser social messages information, etc.), and/or any otherpreference/personal information associated with the user.

In some embodiments, the social networking system 101 may enable one ormore applications (e.g., social application 124-1-1 and/or 124-1-2further discussed with respect to FIG. 1B, etc.) of device 102-a toretrieve at least a portion of the user profile information associatedwith the user and display at least a portion of the user profileinformation on one or more display screens operatively coupled to thedevices 102-a. To facilitate user interaction between and among users inthe social networking system 101, the social networking system 101 mayalso enable users to search user profile of other users based at leastpartially on a received search query and at least a portion of the userprofile information associated with other users, retrieve at least aportion of the user profile information of the other users, and form oneor more social connections with other users by enabling users via theone or more applications of devices 102-a to identify other users as theuser's friend, family member (e.g., spouse, cousin, mother, father,grandmother, grandfather, brother, sisters, daughter, son, etc.),coworker, teammate, classmate, business associate, or any other socialrelationship.

It may be appreciated that the social connections formed between a pairof users may be unidirectional, when only one user in the pair of usersidentifies and acknowledges the type and existence of socialrelationship. Alternatively, the social connections formed between thepair of users may be bidirectional when both users in the pair of usersidentify the same type of social relationship and the existence ofsocial relationship. As such, the social networking system 101 furtherreceive, provide, and/or update user social connections informationwhich may include, but is not limited to, a list of social connectioninformation representative of the social connections of the user (e.g.,the user identifier information or other resource or social networkingobject the user is connected to) and the social connection typeinformation representative of a social connection type (e.g., friend,family member, coworker, teammate, classmate, business associate, and/orany other social relationship) associated with each social connection.Based on the user social connections information of a plurality users,the social networking system 101 may be further configured to determinesocial proximity information which may include, but is not limited to,the degree of separation between one or more pairs of users.

In some embodiments, the social networking system 101 may further enableusers to create, publish, or post one or more profile activities (e.g.,posts, polls, Universal Resource Identifier/Universal Resource Locator(URI/URL) references, etc.), or any other information on the user's ownuser profile represented by the user profile information. Additionally,in some embodiments, the social networking system 101 may further enablesome users to create, publish, and/or post one or more profileactivities on user profiles of other users based at least partially onthe user social connection information of the other users. The socialnetworking system 101 may also enable users to send and/or receiveprivate social messages to one or more users by communicating the usersocial messages information comprising one or more private socialmessages to and from one or more users.

To provide collaboration and between and among a specific set of users,including between and among users that may not have a social connectionwith other users in the specific set of users, the social networkingsystem 101 may further enable the association and/or management of oneor more groups. In some embodiments, each group may be represented bysocial group information, which may include, but is not limited to,group identifier information (e.g., a unique identifier that identifiesa particular group in the social networking system 101), group privacyinformation (e.g., group privacy type for the particular group which mayinclude, but is not limited to, secret group type, open group type, orclosed group type), group cover image information, group descriptioninformation (e.g., a description associated with the particular group),group name information (e.g., the group name of the particular group),group owner information (e.g., the owner of the particular group), grouplocation information (e.g., the location of the particular group), groupmembership information (e.g., a list of group members in the particulargroup), group membership count information (e.g., a total number ofgroup members in the particular group), or any other informationassociated with one or more groups.

In some embodiments, the social networking system 101 may enable usersto create one or more groups in the social networking system 101utilizing the one or more applications (e.g., social application 124-1-2of FIG. 1B, etc.). Moreover, the social networking system 101 may enableusers to create one or more groups by receiving at least a portion ofthe social group information (e.g., group privacy information, groupcover image information, group description information, group nameinformation, group owner information, group membership information), andcreating a group based at least partially on the received social groupinformation.

In some embodiments, the social networking system 101, may provide userswith the latest updates regarding the activities of their socialconnections, groups, messages, or any other aspects of users' onlinepresence. To provide the latest updates, the social networking system101 may generate and/or provide users with one or more notificationsregarding the activities of their friends, family members, coworkers,teammates, classmates, business associates, and/or any other user in thesocial networking system 101 (i.e., user notifications), one or morenotifications regarding the activities within one or more groups wherethe users may be group members of (i.e., user group notifications),and/or one or more notifications regarding the activities within one ormore forums where the users may be forum members (i.e., user forumnotifications).

To provide users with these and other social networking services, thesocial networking system 101 may comprise server device 106 which mayinclude, among other applications, social networking application 108.The social networking system 101 may further comprise one or moredatastores 112-d operatively coupled to the server device 106. The oneor more datastores 112-d may be configured to store one or moreresources or social networking objects representative of the informationreceived and provided by the social networking system 101. Moreover, thesocial networking objects of the social networking system 101 mayinclude, but is not limited to, user social messages information for oneor more users which may be stored in the messages datastore 112-1, oneor more user profiles which may be stored in the user profiles datastore112-2, one or more overlay UI elements which may be stored in theoverlay datastore 112-3, one or more activities (e.g., posts, polls,threads, etc.) which may be stored in the activities datastore 112-4,one or more groups which may be stored in the groups datastore 112-5,media information (e.g., images, videos, files, etc.) which may bestored in media datastore 112-6, one or more events which may be storedin events datastore 112-7 (e.g., social events organized between andamong one or more users, etc.), or any other social networking objectthat may be received, stored, provided, or otherwise tracked and/oraccessed by the social networking system 101 to provide the users withthese and other social networking services.

The one or more datastores 112-d may further store object connectionsbetween two or more objects or resources in the object connectionsdatastore 112-8. Moreover, the object connections may be representativeof the relationship or links between the two or more objects. The one ormore social networking objects in conjunction with one or more objectsconnections may form a social graph comprising two or more nodesinterconnected via one or more edges, where each node may berepresentative of a social networking object and each edge may berepresentative of the object connections between two or more socialnetworking objects in the social networking system 101. To enable theapplications 124-a-1 to retrieve, modify, update or otherwise access thevarious information managed by the social networking system 101 andrepresented as the social graph, the social networking application 108may further provide a graph application program interface (API)utilizing various protocols (e.g., HTTP, HTTPs, etc.).

In some embodiments, the social networking application 108 may includeone or more social networking components 110-c. At least some of the oneor more social networking components 110-c may be arranged to implementat least a portion of the graph API. The one or more social networkingcomponents 110-c may include, but is not limited to, a social networkingmanagement component 110-1, a social networking communications component110-2, social networking overlay component 110-3, and/or socialnetworking messaging component 110-4.

The social networking management component 110-1 may be generallyarranged to enable association and management of one or more groups byone or more users, enable association and management of one or more userprofiles and/or user accounts by one or more users, enablecommunications between and among one or more users via of one or moremessages and/or activities, search for information in the socialnetworking system 101 in response to one or more search queries receivedfrom one or more users via applications 124-a-1, and provide searchresults to one or more users via the one or more applications 124-a-1.

The social networking overlay component 110-3 may be generally arrangedto manage the overlay information stored in the overlay datastore 112-3,determine user context information (e.g., user context information 224further discussed in FIG. 2A, etc.) for one or more users based at leastpartially on at least a portion of user profile information (e.g., usersocial messages information, user interest information, user groupsmembership information, user biographic information, user demographicinformation, etc.), location information, calendar event informationand/or external event information (e.g., weather information, sportsinformation, etc.). Additionally, the social networking overlaycomponent 110-3 may also be generally arranged suggest one or moreoverlay UI elements stored in overlay datastore 112-3 based at leastpartially on user context information (e.g., user context information224), user profile information (e.g., user profile information 210),overlay promotion information (e.g., user promotion information 219).The suggestions may be provided in a list of aggregate overlayinformation (e.g., list of aggregate overlay information 230).

The social networking messaging component 110-4 may be generallyarranged to provide messaging services to one or more users of thesocial networking system 101. Moreover, the network messaging component110-3 may be arranged to receive one or more social messages from usersutilizing one or more applications 124-a-1 and/or 124-a-2 of one or moredevices 102-a. The network messaging component 110-3 may be arranged totransmit one or more received social messages to the respective usersvia one or more applications 124-a-1 and/or 124-a-2 of one or moredevices 102-a. Additionally, the social networking messaging component110-4 may also be arranged to store the received and/or transmittedmessages between and among users in a messages datastore 112-1. It maybe appreciated that the one or more social messages may include, but isnot limited, to one or more multi-media social messages which mayinclude, but is not limited to, images, video, illustrated graphical UIelements (e.g., “Stickers”, etc.), and/or shareable composite imagesand/or video further discussed below and/or elsewhere.

The social networking communications component 110-2 may be generallyarranged to provide communications for the one or more social networkingcomponents 110-c and communicate (e.g., transmit and/or receiveinformation such as information 192, etc.) with the one or moreapplications 124-a-1 and/or 124-a-2 via communications network 103.

FIG. 1B illustrates an exemplary embodiment of a device 102-1, which maybe a mobile device 102-1 (e.g., a mobile phone or any other a portablecomputing and/or communications device), comprising one or moreapplications 124-1-b, in the mobile predictive power management system100. The mobile device 102-1 may be generally arranged to provide mobilecomputing and/or mobile communications and may include, but is notlimited to, system memory 120, processing component 126, storagecomponent 150, image capture component 154, communications component158, acoustic input/output component 162, touch sensitive displaycomponent 182, haptic component 172, location component 172,acceleration component 180 and input/output component 184, where each ofthe components and system memory 120 may be operatively connected viainterconnect 130.

In some embodiments, the processor component 126 may be generallyarranged to execute instruction information including one or moreinstructions. In some embodiments, the processor component 126 may be amobile processor component or system-on-chip (SoC) processor componentwhich may comprise, among other elements, processor circuit 128. Theprocessor circuit 128 may include, but is not limited to, a centralprocessor unit (CPU) comprising a first set of electronic circuitsarranged to execute one or more instructions and/or a graphicsprocessing unit (GPU) comprising a second set of electronic circuitsarranged to execute one or more graphics-oriented instructions.Exemplary processor components 126 may include, but is not limited to,Qualcomm® Snapdragon®, Nvidia® Tegra®, Intel® Atom®, Samsung® Exynos,Apple® A7 ®, Apple® A8®, or any other type of mobile processingcomponent 126 arranged to execute the instruction information includingthe one or more instructions stored in system memory 120 and/or storagecomponent 150.

In some embodiments, the storage component 150 may be generally arrangedto store information in volatile and/or nonvolatile memory, which mayinclude, but is not limited to, read-only memory (ROM), random-accessmemory (RAM), dynamic RAM (DRAM), Double-Data-Rate DRAM (DDRAM),synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM),erasable programmable ROM (EPROM), electrically erasable programmableROM (EEPROM) flash memory, polymer memory such as ferroelectric polymermemory, ovonic memory, phase change or ferroelectric memory,silicon-oxide-nitride-oxide-silicon (SONOS) memory, solid state memorydevices (e.g., USB memory, solid state drives SSD, etc.), and/or anyother type of storage media configured for storing information.

In some embodiments, the image capture component 154 may be generallyarranged to capture one or more images or a sequence of one or moreimages (e.g., video, etc.) and provide image information and/or videoinformation. The image capture component 154 may include, among otherelements, image sensor(s) 156. Exemplary image sensors(s) 156 mayinclude, but is not limited to, charged-coupled devices (CCD),active-pixel sensors (APS), or any other type of image sensors arrangedfor converting optical images into electronic signals that may becompressed, encoded, and/or stored as image information and/or videoinformation. It may be appreciated that while not illustrated, in someembodiments, the image sensor(s) 156 may be positioned to enable a userto view the image information and/or video information visuallypresented on the display device 168 and captured by the image sensor(s)156 substantially in real time, so that the user may easily capture, forexample, a self-portrait utilizing the image sensor(s) 156. For example,the image sensor(s) 156 may be physically positioned or placed on thesame plane as the display device 168 of the touch sensitive displaycomponent 182 and may be physically arranged to face a user using themobile device 102-1. This may enable the image sensor(s) 156 to captureand convert at least optical images that are substantially perpendicularto the same plane as the display device 168. Additionally oralternatively, the mobile device 102-1 may further include, but is notlimited to, additional image sensors positioned in other physicallocations of the mobile device 102-1, which may enable the mobile device102-1 to be used as a traditional digital camera.

In some embodiments, the communications component 158 may be generallyarranged to enable the mobile device 102-1 to communicate with thesocial networking system 101 via the communication network 103. Thecommunications component 158 may include, among other elements, a radiofrequency circuit 160 configured for encoding and/or decodinginformation and receiving and/or transmitting the encoded information asradio signals in frequencies consistent with the one or more wirelesscommunications standards (e.g., Wireless IEEE 802.11, WiMAX IEEE 802.16,Global Systems for Mobile Communications (GSM), Enhanced Data Rates forGSM Evolution (EDGE), Long Term Evolution (LTE), etc.).

In some embodiments, the acoustic input/output (I/O) component 162 maybe generally arranged for converting sound, vibrations, or any othermechanical waves received into electronic signals representative ofacoustic input information utilizing an acoustic sensor 164 (e.g., amicrophone, etc.). Additionally, the acoustic I/O component 162 may befurther arranged to convert electronic signals representative ofacoustic output information utilizing an electroacoustic transducer 166(e.g., a speaker, etc.) to output sound, vibrations, or any othermechanical waves.

In some embodiments, the touch sensitive display component 182 may begenerally arranged to receive and present visual display information,and provide touch input information based on detected touch based orcontact based input. Moreover, the touch sensitive display component 182may include, among other elements, a display device 168 (e.g.,liquid-crystal display, light-emitting diode display, organiclight-emitting diode display, etc.) for presenting the visual displayinformation and touch sensor 170 (e.g., resistive touch sensor,capacitive touch sensor, etc.) associated with the display device 168 todetect and/or receive touch or contact based input information viaassociated with the display device 168. Additionally, in someembodiments, the touch sensor 170 may be integrated with the surface ofthe display device 168, so that a user's touch or contact input maysubstantially correspond to the presented visual display information onthe display device 168.

In some embodiments, the haptic component 172 may be generally arrangedto provide tactile feedback through the housing, case, or enclosure ofthe mobile device 102-1. Moreover, the haptic component 172 may include,among other elements, a vibration circuit 174 (e.g., an oscillatingmotor, vibrating motor, etc.) arranged to convert haptic information tomechanical vibrations representative of tactile feedback.

In some embodiments, the location component 176 may be generallyarranged to receive positioning signals representative of positioninginformation and provide location information (e.g., approximate physicallocation of the current mobile device 102-1) based at least partially onthe received positioning information. Moreover, the location component176 may include, among other elements, a positioning circuit 178 (e.g.,a global positioning system (GPS) receiver, etc.) arranged to determinethe physical location of the mobile device 102-1. In some embodiments,the location component 176 may be further arranged to communicate and/orinterface with the communications component 158 and communicate with thecommunications network 103 in order to provide greater accuracy and/orfaster location acquisition of the location information.

In some embodiments, the acceleration component 180 may be generallyarranged to detect acceleration of the mobile device 102-1 in one ormore axes. The acceleration component 180 may include, among otherelements, motion sensor 182 (e.g., accelerometer, etc.) to convertphysical motions applied the mobile device 102-1 into motioninformation.

In some embodiments, the input/output component 184 may be generallyarranged to provide signal I/O and may include, among other elements,input/output circuit 186. Exemplary input/output components 184 mayinclude, but is not limited to, microphone input component, headphoneoutput component, universal serial bus (USB) component, or any othersignal input/output component.

In some embodiments, the system memory 120 may be generally arranged tostore information in volatile and/or nonvolatile high speed memorysimilar to those discussed with respect to storage component 150. Insome embodiments, at least a portion of the stored information in thesystem memory 120 may comprise instruction information arranged forexecution by the processing component 126. In those embodiments, theinstruction information may be representative of at least one operatingsystem 122-1, one or more applications 124-1-b, and/or any otherprograms and/or modules. In some embodiments, the one or moreapplications 124-1-b may include, but is not limited to, a managementapplication 124-1-3 generally arranged to manage the execution of theone or more applications 124-1-b of the mobile device 102-1. The one ormore applications 124-1-b may further include, but is not limited to,messaging application 124-1-1, social application 124-1-2, imagingapplication 124-1-4, phone application 124-1-5, calendar application124-1-6, audio/video application 124-1-12, and/or any other applicationgenerally arranged for execution by the processing component 126.

In some embodiments, the operating system 122-1 may comprise a mobileoperations system 122-1 (e.g., Apple®, iOS®, Google® Android®, HP®WebOS®, Microsoft® Windows Phone®, Microsoft® Windows®, etc.) generalarranged to manage hardware resources (e.g., one or more components ofthe mobile device 102-1) and/or software resources (e.g., one or moreapplications 124-1-b of the mobile device 102-1). The operating system122-1 may be further arranged to modify execution states associated withone or more applications 124-1-b based at least partially on informationreceived from one or more components (e.g., touch sensitive displaycomponent 182, power source component (not shown), location component176, communications component 158, etc.) and/or one or more applications(e.g., messaging application 124-1-1, social application 124-1-2,management application 124-1-3, imaging application 124-1-4, phoneapplication 124-1-5, calendar application 124-1-6, etc.).

In some embodiments, the operating system 122-1 may be arranged tomodify execution states by transitioning the one or more applications124-1-b between and among the one or more execution states. The one ormore execution states may include, but is not limited to, foregroundstate, non-execution state, suspended state, and/or background state. Insome embodiments, applications 124-1-b may be initially in thenon-execution state where the instruction information associated withapplications 124-1-b in the non-execution state are not executed by theprocessor component 126 nor scheduled for execution by the processorcomponent 126.

In some embodiments, the operating system 122-1 may transition anapplication (e.g., messaging application 124-1-1, etc.) may transitionfrom the foreground state to the suspended state, in response to arequest to launch a different application (e.g., transitioning thedifferent application, such as, for example, social application 124-1-2from non-execution state to the foreground state), switch to a differentapplication (e.g., transitioning the different application, such as, forexample, social application 124-1-2 from background state to theforeground state), or resume a different application (e.g.,transitioning the different application, such as, for example, socialapplication 124-1-2 from suspended state to the foreground state). Insome embodiments, the operating system 122-1 may transition theapplication (e.g., social application 124-1-2, etc.) from the foregroundstate to the background state where a limited portion of the instructioninformation (e.g., instruction information associated with a backgroundthread of the application, etc.) associated with the application iscontinued for further execution by the processor component 126 while theone or more UI views may not be visible or may be partially visible onthe display device 168.

In some embodiments, the management application 124-1-3 may be visuallypresented as a home screen UI view (not shown) comprising a plurality ofUI elements representative of applications 124-1-b and may be generallyarranged to launch on startup of the mobile device 102-1 and operatingsystem 122-1. Additionally, the management application 124-1-3 may bearranged to receive touch input information from the touch sensitivedisplay component 182 in order to launch one or more applications124-1-b. In some embodiments, the management application 124-1-3 may bearranged to request the operating system 122-1 to launch or initiate theexecution of one or more applications 124-1-b of mobile device 102-1based at least partially on the received input information (e.g., touchbased input information received from touch sensor 170, etc.).

In some embodiments, the messaging application 124-1-1 may include, butis not limited to, an overlay component 190 and may be generallyarranged to receive, transmit, display, and/or otherwise manage one ormore messages including multimedia messages (e.g., pictures, videos,audio, etc.) utilizing one or more cellular and/or internet messagingservices via one or more components of the mobile device 102-1. In someembodiments, the social application 124-1-2 may also include, but is notlimited to, an overlay component 190 and may be generally arranged toprovide social networking services between and among one or more usersof one or more devices (e.g., Twitter®, Vine®, Facebook®, Reddit®,Digg®, Imgur®, etc.). In some embodiments, the imaging application124-1-4 may be generally arranged to receive, store, display, and/orotherwise manage image information and/or video information received viathe image capture component 154 and/or communications component 158and/or stored in memory 120/and/or storage component 150. Additionally,the imaging application 124-1-4 may be further arranged to record,playback, or output audio and/or video information received viacommunications component 158 and/or stored in memory 120 and/or storagecomponent 150. In some embodiments, the phone application 124-1-5 may begenerally arranged to receive, make, display, and/or otherwise manageone or more audio and/or video phone calls utilizing one or morecellular and/or internet phone services via one or more components ofthe mobile device 102-1 (e.g., acoustic input/output component 162,communications component 158, processing component 126, etc.). In someembodiments, the calendar application 124-1-6 may be generally arrangedto store one or more appointments, meetings, and/or reminders, for auser of the mobile device 102-1.

FIG. 1C illustrates an exemplary embodiment of the overlay component 190for managing one or more overlay UI elements in one or more imagesand/or videos of a social application 124-1-2 and/or messagingapplication 124-1-1. It may be appreciated that, while not illustrated,the social application 124-1-2 and/or messaging application 124-1-1 maybe generally arranged to authenticate a user having an associated useraccount in the social networking system 101 based on at least a portionof the user account information (e.g., user account identifier and useraccount authentication token) inputted by the user utilizing, forexample, an on-screen virtual keyboard or any other input information.Moreover, once the user having the associated user account has beenauthenticated, the social application 124-1-2 and/or messagingapplication 124-1-1 may be configured to receive one or more timelimited access tokens from the social networking application 108, andstore the one or more time limited access tokens in the storagecomponent 150 and/or system memory 120 of the mobile device 102-1 foruse by the one or more components of the social application 124-1-2and/or messaging application 124-1-1 (e.g., overlay component 190) toutilize one or more services provided by the social networking system101 as a user having the associated user account information and/or userprofile information. The overlay component 190 may further include oneor more components, which may include, but is not limited to, overlaymanagement component 190-1, overlay rendering component 190-2, overlayimaging component 190-3, overlay input component 190-4, and/or overlaycommunications component 190-5, and/or overlay settings component 190-6.

The overlay communications component 190-5 may be generally arranged toreceive, transmit, and/or otherwise facilitate communications ofinformation 192 between the one or more components of the overlaycomponent 190, and the social networking system 101 utilizing thereceived, stored, and/or cached one or more time limited access tokens,one or more APIs (e.g., graph API, etc.), one or more components of themessaging application 124-1-1 and/or the social application 124-1-2, oneor more components of the mobile device 102-1 (e.g., the communicationscomponent 158), and communications network 103.

The overlay rendering component 190-2 may be generally arranged toprovide visual display information to the touch sensitive displaycomponent 182 and render one or more UI views comprising one or more UIelements, image information, and/or video information for visualpresentation on the display device 168. In some embodiments, the overlayrendering component 190-2 may be further arranged to provide visualdisplay information to the touch sensitive display component 182 torender one or more animated transitions between the one or more viewsand/or render one or more animated UI elements for visual presentationon the display device 168.

The overlay imaging component 190-3 may be generally arranged to receiveimage and/or video information received from image capture component 154in substantially real time and/or stored in local image datastore (notshown) in the system memory 120 and/or storage component 150.Additionally, the overlay imaging component 190-3 may be generallyarranged to provide the image and/or video information to the overlayrendering component 190-2 for rendering and visually presenting theimage and/or video information on a display device 168 of the touchsensitive display component 182.

In some embodiments, the overlay imaging component 190-3 may be arrangedto detect and track one or more features within the received imageinformation and/or video information such as, for example, faces, eyes,nose, ear, persons, inanimate objects, facial expressions, eye blinks,and/or the like utilizing one or more image processing, imagerecognition, image detection, and/or a machine vision components,modules, and/or libraries (e.g., one or more modules or components ofApple® Core Image library, one or more modules of the Open SourceComputer Vision (Open CV), etc.). The overlay imaging component may befurther arranged to generate image recognition information in at leastnear real time and provide the generated image recognition informationto one or more components of the overlay component 190. The imagerecognition information may include, but is not limited to, informationrepresentative of one or more identified features and the associatedlocation and size of each identified feature.

The overlay input component 190-4 may be generally arranged to provideuser input information which may include, but is not limited to, one ormore gestures and provide character input information utilizing one ormore components of the mobile device 102-1 (e.g., touch sensitivedisplay component 182). In some embodiments, the overlay input component190-4 may be configured to receive touch input information from thetouch sensitive display component 182 and determine one or more fingergestures based at least partially on the received touch inputinformation. In some embodiments, the overlay input component 190-4 maybe configured to provide user input information including the characterinput information based on one or more characters inputted by a userutilizing an on-screen virtual keyboard (not shown) visually presentedon at least a portion of the display device 168. Moreover, the characterinput information may be determined based at least partially on one ormore contacts detected in a predefined region associated with theon-screen virtual keyboard.

In some embodiments, the overlay input component 190-4 may be furtherconfigured to detect a selection finger gesture to select a selectableUI element based at least partially on the received touch inputinformation, the received touched input information may include, but isnot limited to, finger contact at a first location in a predefinedregion associated with the UI element visually presented on the displaydevice 168 (e.g., display screen 310 of display device 168) for apredefined time period (e.g., less than one second), and termination ofthe finger contact at the first location of the predefined region.

In some embodiments, the overlay input component 190-4 may be alsoconfigured to detect a scroll finger gesture to scroll a scrollable UIelement and/or scrollable UI view based at least partially on thereceived touch input information, the received touched input informationmay include, but is not limited to, finger contact at a first locationin a predefined region associated with the scrollable UI element and/orscrollable UI view visually presented on the display device 168 (e.g.,display screen 310 of display device 168), initiating movement of thefinger contact within a predefined time period after the finger contact(e.g., less than one second), continuous movement of the finger contactfrom the first location to a second location in at least one direction(e.g., up direction, down direction, left direction, right direction, orany combination thereof), and termination of the finger contact at thesecond location.

In some embodiments, the overlay input component 190-4 may be furtherconfigured to detect a movement finger gesture to move a moveable UIelement from a first position to a second position on the display device168 (e.g., display screen 310 of display device 168) based at leastpartially on the received touch input information. Furthermore,detecting the movement finger gesture may include, but is not limited todetecting a starting movement finger gesture to begin the movement of amoveable UI element and an ending movement finger gesture to end themovement of the moveable UI element.

In some embodiments, the overlay input component 190-4 may be configuredto detect the starting movement finger gesture based on the receivedtouch input information which may include, but is not limited to, fingercontact at the first location in a predefined region associated with themoveable UI element visually presented on the display device 168. Theoverlay input component 190-4 may be configured to detect the endingmovement finger gesture based on the received touch input informationwhich may include, but is not limited to, finger contact from the firstlocation to the second location in one direction, and termination of thefinger contact at the second location after movement of the fingercontact.

In some embodiments, the overlay input component 190-4 may be furtherconfigured to detect an edit finger gesture to begin editing an editableUI element (e.g., modifying, color, shape, add text, remove text, addnew features, etc.) based at least partially on the received touch inputinformation. Furthermore, detecting the edit finger gesture fingergesture which may include, but is not limited to, finger contact at alocation in a predefined region associated with the editable UI elementvisually presented on the display device 168 for a predefined timeperiod (e.g., two seconds, three seconds, etc.) and detectingtermination of the contact at the location after the predefined timeperiod.

It may be appreciated that in some embodiments, UI elements and/or UIviews may be configured as selectable, moveable, editable, and/orscrollable, and the overlay input component 190-4 may be configured todetermine the respective finger gesture based at least partially on thereceived touch input information.

The overlay settings component 190-6 may be generally arranged to managethe settings associated with the overlay component 190 and/or socialnetworking overlay component 110-3. In some embodiments, the overlaysettings component 190-6 may be configured to modify and/or update useroverlay preferences information stored or cached in storage component150 and/or system memory 120, based at least partially on user inputinformation provided by the discussions input component 190-4.

In some embodiments, the overlay settings component 190-6 may beconfigured to modify, update, and/or otherwise synchronize the usermobile discussions application preferences information stored or cachedin storage component 150 and/or system memory 120 with the user mobilediscussions application preferences information stored in the socialnetworking system 101, so that any instance of the messagingapplications 124-a-1 and/or social applications 124-a-2 including theoverlay component 190 for a user having an associated user account anduser profile information may share and/or utilize the latest useroverlay preferences information regardless of which device the user iscurrently using.

The overlay management component 190-1 be generally arranged to providecontext sensitive overlay management for the messaging application124-1-1 and/or social application 124-1-2. To provide context sensitiveoverlay management, the overlay management component 190-1 may begenerally arranged to manage the capture of image and/or videoinformation that includes one or more context overlay UI elements, i.e.,one or more composite overlay images or videos utilizing one or morecomponents of the overlay component 190. The one or more compositeoverlay images may then be shared with one or more users (e.g., sharedas one or more social messages, profile activities, etc.) via the socialnetworking system 101.

In some embodiments, the overlay management component 190-1 may beconfigured to receive a request from the one or more components of themessaging application 124-1-1 and/or social application 124-1-2 tovisually present an image/video share UI view (e.g., image/video shareUI view 300, etc.) for sharing image information and/or videoinformation received from image capture component 154. In response tothe request for sharing image information and/or video informationreceived from image capture component 154, the overlay managementcomponent 190-1 may configure the overlay rendering component 190-2 torender and visually present the image/video share UI view (e.g.,image/video share UI view 300 of FIG. 3) based at least partially onimage information and/or video information received from the imagecapture component 154.

Additionally or alternatively, the overlay management component 190-1may also be configured to receive a request from the one or morecomponents of the messaging application 124-1-1 and/or socialapplication 124-1-2 to visually present an image/video share UI view(e.g., image/video share UI view 300, etc.) for sharing imageinformation and/or video information stored in a image datastore (notshown) of the system memory 120 and/or storage component 150 of themobile device 102-1. In response to a request to share image informationand/or video information stored in a image datastore (not shown) of thesystem memory 120 and/or storage component 150, the overlay managementcomponent 190-1 may configure the overlay rendering component 190-2 torender and visually present an image/video share UI view (e.g.,image/video share UI view 300, etc.) based at least partially on imageinformation and/or video information stored in an image datastore (notshown) of the system memory 120 and/or storage component 150.

To provide users with a preview of overlay UI elements applicable to auser's context, in some embodiments, the overlay management component190-1, may be configured to receive a request to preview one or morecomposite overlay UI views in a composite overlay preview UI view (e.g.,composite overlay preview UI view 400 of FIG. 4), which may include, butis not limited to, a grid (e.g., a three by three grid, etc.) ofcomposite overlay UI elements. Each composite overlay UI element may beconfigured to visually present a particular composite overlay UI view(e.g., composite overlay UI view 500, 520, 540, 560, etc.). A compositeoverlay UI view may be represented by an associated composite overlayview information and may include, but is not limited to, the imageand/or video represented by the image and/or video information and atleast one overlay UI element for rendering and/or visual presentationwith the image and/or video (e.g., visual presentation on top of theimage and/or video information).

In response to receiving the request to preview one or more overlay UIelements, the overlay management component 190-1 may be configured torequest the social networking overlay component 110-3 for a list ofaggregate overlay information by generating a request for the list ofaggregate overlay information, where each aggregate overlay informationmay include at least one overlay element identifier that identifies atleast one overlay UI element, where the at least one overlay UI elementmay be applicable to a user's context as represented by the user contextinformation (e.g., user context information 224 further discussed inFIG. 2A, etc.).

In some embodiments, the request may include, but is not limited to,location information (e.g., location information received from alocation component 176) for identifying the current location (e.g.,longitude, latitude, and/or altitude coordinates, etc.) of the mobiledevice 102-1 and/or calendar event information (e.g., one or morecalendar events associated with calendar application 124-1-6) foridentifying one or more calendar events stored on the mobile device102-1. In response to the request, the overlay management component190-1 may be configured to receive the list of aggregate overlayinformation and optionally, user context information, where eachaggregate overlay information may include, but is not limited to, atleast one overlay element identifier that may identify a particularoverlay UI element represented as overlay element information stored inthe overlay datastore 112-3. To ensure and respect a user's privacy, insome embodiments, the overlay management component 190-1 may be furtherconfigured to provide the location information and/or calendar eventinformation, when the user overlay preferences information indicatesthat the user has authorized the mobile component 190 to provide thelocation information and/or calendar event information to the socialnetworking system 101 for further analysis.

The overlay element information associated with an overlay UI elementmay include, but is not limited to, overlay element identifierinformation (e.g., an overlay element identifier that uniquelyidentifies a particular overlay UI element), overlay name information(e.g., the name of the overlay UI element), overlay attributeinformation (e.g., one or more attributes that may be modified by one ormore user utilizing for example a mobile device), overlaycommercialization information (e.g., cost associated with the overlay UIelement, promotional information such as promotions and/or discounts inthe form of discount barcodes associated with sharing the overlay UIelement, etc.), overlay rendering information (e.g., the information forrendering the context sensitive overlay UI element for visualpresentation on a display device), overlay feature alignment information(e.g., information for assisting in the positioning, orienting, and/orproportioning of detected features within images and/or videos), overlaysource information (e.g., the affiliate, sponsor, associated entity,user, and/or source of the overlay UI element and/or the affiliate,sponsor, associated entity, user, and/or source that modified theoverlay UI element), overlay set information (e.g., the one or moregroups, sets, or packs that a particular overlay UI element is part ofor belongs to), overlay popularity information (e.g., the number oftimes the overlay UI element has been shared between and among all usersin the social networking system in one or more set time periods and theuser identifier information that shared the overlay UI element in thoseset time periods), overlay multi-person information (e.g., indicates howmany persons the overlay UI element is applicable), and/or overlaycontext information (e.g., one or more context terms for identifying theappropriate context associated with the overlay rendering information).

The overlay attribute information may include, but is not limited to,overlay position information (e.g., the position overlay position forrendering and visual presentation on a display device), overlay sizeinformation (e.g., the size of the overlay UI element), overlay textinformation (e.g., associated text, position of the text, size of thetext, font of the text for the overlay UI element), overlay colorinformation (e.g., associated color(s) for the overlay UI element),overlay illustrated graphical UI elements information (e.g., additionalgraphical elements such as “Stickers”), overlay orientation information(e.g., the rotation of the overlay UI element), and/or overlaycustomized graphics information (e.g., any additional drawings,sketching, and/or coloring associated with the overlay UI element).

To render and visually present a composite overlay preview UI view(e.g., the composite overlay preview UI view 400) including one or morecomposite overlay UI elements, the overlay management component 190-1may be further configured to request and receive overlay elementinformation for each overlay UI element identified by the overlayelement identifier in one or more aggregate overlay information.Moreover, the overlay management component 190-1 may be configured torequest and receive overlay element information from the socialnetworking overlay component 110-3 for overlay element informationrepresentative of one or more overlay UI elements not already located ina local overlay datastore (not shown) in the system memory 120 and/orstorage component 150 of the mobile device 102-1. After a sufficientnumber of overlay element information has been requested and received(e.g., sufficient number of overlay element information to render acomposite overlay preview UI view such as a list of aggregate overlayinformation to render 9 composite overlay UI elements 410-m-n, etc.),the overlay management component 190-1 may configure the overlayrendering component 190-2 to render and visually present one or morecomposite overlay UI elements (e.g., composite overlay UI element410-1-1, etc.). Each composite overlay UI element may be configured tovisually present a preview of at least one overlay UI element asrendered with received and/or stored image information and/or videoinformation.

To ensure that at least one overlay UI element in a composite overlay UIelement is properly positioned, oriented, and/or proportioned withrespect to the features within images and/or videos, in someembodiments, at least one overlay UI element may also be rendered andvisually presented based at least partially on the image recognitioninformation and overlay feature alignment information associated witheach overlay UI element. Moreover, in those embodiments, the overlaymanagement component 190-1 may be configured to generate modifiedoverlay element information by modifying one or more attributes of theoverlay UI element (e.g., modifying the overlay position information,overlay size information, overlay orientation information of overlayelement information associated with the UI element, etc.) to align,orient, and/or proportion to a particular feature or features asindicated in the overlay feature alignment information (e.g., alignadjacent to a top edge of a detected feature such as a head, on top ofan detected feature such as eyes, below a detected feature such as aface, overlapping a detected feature such as nose, etc.) to featuresdetected in the image recognition information (e.g., eyes, face, mouth,head, etc.), so that the rendered and visually presented overlay UIelement in a composite overlay UI element may be substantiallypositioned and proportioned at least near one or more features detectedin the background images and/or background videos represented by imageand/or video information. In those embodiments, the overlay managementcomponent 190-1 may configure the modified overlay information to renderand visually present the overlay UI element having one or more modifiedattributes in one or more UI views (e.g., composite overlay UI element410-1-1 in the composite overlay preview UI view 400, etc.) based atleast partially on image recognition modified overlay elementinformation.

In a non-limiting example, the overlay management component 190-1 maygenerate modified overlay element information by modifying the overlayposition information, overlay orientation information, and/or overlaysize information of an overlay UI element representative of eye lashesto align, orient, and/or proportion the overlay UI element as adjacentto a top edge of a pair of eyes detected in the image and/or video, sothat the overlay UI element is rendered and visually presentedsubstantially near or adjacent to the eyes of a face and has a size thatis in proportion to the eyes of the face detected in the image and/orvideo (e.g., the image and/or video represented by image informationand/or video information received via the image capture component 154and/or communications component 158 and/or stored in memory 120/and/orstorage component 150). It may be appreciated that the overlaymanagement component 190-1 may modify one or more attributes of anoverlay UI element in near real time as the image recognitioninformation is also generated and/or updated in near real time, so thatthe overlay management component 190-1 may configure the overlayrendering component 190-2 to render the overlay UI element in near realtime and substantially track or follow the position, orientation, and/orproportion of one or more detected features.

To provide users with a more detailed view of overlay UI elements, addadditional overlay UI elements, and/or modify overlay UI elements, insome embodiments, the overlay management component 190-1 may beconfigured to render and visually present one or more composite overlayUI views (e.g. composite overlay UI views 500, 520, 540, 560, etc.)including one or more overlay UI elements, in response to receiving arequest to render and visually present a particular composite overlay UIview.

In some embodiments, the overlay management component 190-1 may beconfigured to render and/or visually present one or more overlay UIelements in a composite overlay UI view based at partially on theoverlay element information representative of an overlay UI element in acomposite overlay UI view. In those embodiments, the overlay managementcomponent 190-1 may be further configured to render and visually presentone or more overlay UI element for the composite overlay UI view basedat least partially on one or more attributes of the one or more overlayUI elements.

To ensure that at least one overlay UI element in a composite overlay UIview is properly positioned and proportioned with respect to thefeatures within images and/or videos, the overlay management component190-1 may be configured to modify one or more attributes of the overlayUI element (e.g., overlay position information, overlay sizeinformation, overlay orientation information, etc.) to align, orient,and/or proportion to a particular feature or features as indicated inthe overlay feature alignment information to features detected in theimage recognition information as discussed above and/or elsewhere.

In some embodiments, at least one overlay UI element may besubstantially rendered and visually presented based at least partiallyon the received user context information (e.g., user context information224 further discussed in FIG. 2A) representative of one or more contextsof a user. In those embodiments, the overlay management component 190-1may also be configured to modify one or more attributes of the overlayUI element (e.g., modifying overlay text information associated with theoverlay UI element), so that the overlay UI element may be rendered andvisually presented with modified attributes appropriate for a particularuser context based at partially on the user context information.

In one non-limiting example, the overlay management component 190-1 maymodify the overlay text information of an overlay UI elementrepresentative of word or conversation bubble with associated textstating “I Love You!”, when the overlay management component 190-1determines that the user is messaging their spouse based at partially onuser context information (e.g., user communications context information224-1).

In another example, the overlay management component 190-1 may modifythe overlay text information of an overlay UI element representative ofword or speech bubble to with text stating “On my way”, when the overlaymanagement component 190-1 determines that the user is late for an eventbased at least partially on the user context information (e.g., userlocation context information 224-2, user event context information224-3, etc.). Moreover, to determine that the user is late for theevent, the overlay management component 190-1 may correlate the userlocation context information 224-2, which may identify one or moreapproximate locations for a mobile device (e.g., mobile device 102-1)associated with the user with user event context information 224-3,which may identify at least one user event context which may include oneor more current events that the user intends to participate, thelocation of that event and/or the number of users who are sociallyconnected to the user that are also intending to participate or iscurrently participating.

In still another non-limiting example, the overlay management component190-1 may modify the overlay size information and/or overlay colorinformation of an overlay UI element representative of a birthday caketo increase the size of the birthday cake and/or at least some of theassociated colors of the birthday cake, when the overlay managementcomponent 190-1 determines that the user is at a location associatedwith a birthday party event with ten or more of their friends who arealso at the location associated with the birthday party event based atleast partially on the user context information (e.g., user eventcontext information 224-3 discussed above and/or elsewhere, etc.).

In some embodiments, the one or more overlay UI elements in one or morecomposite overlay UI views may be freely available to a user for sharingvia messaging application 124-1-1 and/or social application 124-1-2 asindicated by the associated overlay commercialization information. Inother embodiments, the one or more overlay UI elements in one or morecomposite overlay UI views may have a cost or price associated with anoverlay UI element for purchase by a user as indicated by the associatedoverlay commercialization information. It may be appreciated that theusers may purchase the one or more overlay UI elements via the messagingapplication 124-1-1 and/or social application 124-1-2 in one or more UIviews (not shown) of the messaging application 124-1-1 and/or socialapplication 124-1-2 and/or as rendered and visually presented incomposite overlay UI views (e.g., composite overlay UI views 500, 520,540, 560, etc.). Additionally or alternatively, the messagingapplication 124-1-1 and/or social application 124-1-2 may also enableusers to purchase one or more overlay UI elements in one or more packs,groups, or sets where each packs, groups, or set may include one or moreoverlay UI elements.

In some embodiments, the overlay management component 190-1 may beconfigured to enable a user to modify one or more overlay attributes ofone or more overlay UI element (e.g., modifying positioning information,overlay size information, overlay text information, overlay colorinformation, illustrated graphical UI elements information, overlaycustomized graphics information, etc.), in response to a request tobegin modifying one or more overlay attributes associated with anoverlay UI element in one or more UI views (e.g., composite overlay UIview 500, 520, 540, 560, etc.). The modifiable overlay attributeinformation may include, but is not limited to, overlay positioninformation (e.g., the position overlay position for rendering andvisual presentation on a display device), overlay size information(e.g., the size of the overlay element), overlay text information (e.g.,associated text for the overlay element), overlay color information(e.g., associated color(s) for the overlay UI element), illustratedgraphical UI elements information (e.g., additional illustratedgraphical UI elements such as “Stickers”), overlay orientationinformation (e.g., the rotation of the overlay UI element), and/oroverlay customized graphics information (e.g., any additional drawings,sketching, and/or coloring associated with the overlay UI element). Thismay enable users to add associated text, add associated illustratedgraphical UI elements such as “stickers”, modify associated color,modify position, modify orientation, modify proportion, associated withone or more overlay UI elements.

In some embodiments, the overlay management component 190-1 may beconfigured to enable a user create their own overlay UI element, inresponse to a request to create an overlay UI element. The overlaymanagement component 190-1 may enable a user to create their own overlayUI element by adding an existing image and/or animated image (e.g.,animated gif, etc.) stored in the local image datastore (not shown) ofthe mobile device 102-1 as a user overlay UI element having anassociated overlay element information. Additionally or alternatively,the overlay management component 190-1 may also be configured to enablea user create their own user overlay UI element by utilizing one or moreUI views (not shown) configured to enable drawing, coloring, and/orsketching of one or more overlay UI elements utilizing one or morefinger gestures on a display screen (e.g., display screen 310illustrated in FIGS. 3, 4, 5A-5D, etc.) the touch sensitive displaycomponent 182.

Similarly, in some embodiments, the overlay management component 190-1may also be configured to enable a user to modify existing overlay UIelement utilizing one or more UI views (not shown) configured to enabledrawing, coloring, and/or sketching of one or more overlay UI elementsutilizing one or more finger gestures on the touch sensitive displaycomponent 182. It may be appreciated that the additional drawings,coloring, and/or sketching may be stored as overlay customized graphicsinformation associated with each overlay UI element.

To ensure that newly created overlay UI elements may be appropriatelypresented in the future for user contexts identified in user contextinformation (e.g., user context information 224), in some embodiments,the overlay management component 190-1 may be further configured tovisually present one or more UI views (not shown) configured to requestand receive at least a portion of the overlay element information (e.g.,overlay name information, overlay context information, etc.) associatedwith the new user overlay UI element utilizing, for example, anon-screen virtual keyboard or any other input information received fromthe user.

In some embodiments, the overlay management component 190-1 may also beconfigured to enable a user to add additional overlay UI elements (e.g.,overlay UI element 254-1, overlay UI element 254-5, etc.) in one or moreUI views such as, for example, image/video share UI view 300 and/orcomposite overlay UI views 500, 520, 540, 560, in response to an addoverlay UI element request. To enable users to select additional overlayUI elements to add to the one or more UI views and provide a preview ofthe visual presentation of the one or more overlay UI elements asapplied to a background image and/or video (e.g., background imageand/or video represented by image information and/or video informationcaptured from image capture component 154, etc.), the overlay managementcomponent 190-1 may visually present composite overlay preview UI view400, which may include, but is not limited to, one or more compositeoverlay UI elements 410-m-n where each composite overlay UI elements mayinclude, but is not limited to, the background image and/or video and/orat least one overlay UI element (e.g., overlay UI element 254-8 asillustrated in composite overlay preview UI view 400 of FIG. 4.

In addition to adding new and/or existing overlay UI elements, theoverlay UI elements may also be configured to enable a user to addadditional images to an image/video share UI view (e.g., image/videoshare UI view 300) and/or composite overlay UI view (e.g., compositeoverlay UI view 500), in response to an add image request. Moreover, theadditional images may include, but is not limited to, images representedby an associated image information stored in a local image datastore(not shown) on the mobile device 102-1 and/or image information storedin the media datastore 112-6 associated with the user profileinformation of the user. This may enable the user to add an image oftheir friends, family, significant other, and/or the like to an existingcomposite overlay UI view, which may include overlay UI elementsappropriate for two or more persons. It may be appreciated the addedimage may be appropriately positioned, oriented, and/or proportionedutilizing for example one or more gestures to ensure that the newlyadded image of appropriate size, position, and/or orientation withrespect to the existing images and/or video.

After a user is a satisfied with one or more overlay UI elementsvisually presented in one or more composite overlay UI views, the usermay request the overlay management component 190-1 to share a compositeoverlay image or composite overlay video, which may include, but is notlimited to, the one or more overlay UI elements, and the backgroundimage and/or video visually presented by the composite overlay UI viewincluding any modifications by the user (e.g., modifications includingadditional drawing, coloring, texts associated with one or more overlayUI elements etc.) and/or by the overlay management component 190-1(e.g., modifications of the one or more overlay UI elements as result ofimage recognition and feature detection, etc.). In response to therequest to share, the overlay management component 190-1 may modifyoverlay source information for any newly created or customized overlayUI elements to indicate a corresponding newly created or customizedoverlay UI element is user created or user customized. Additionally, theoverlay management component 190-1 may transmit the overlay elementinformation for any user created or user customized overlay UI elementsto the social networking overlay component 110-3 for storage in theoverlay datastore 112-3.

The overlay management component 190-1 may be further configured togenerate a shareable composite overlay information which may include,but is not limited to, a rendered image information or rendered videoinformation including the one or more overlay UI elements and thebackground image or video including any modifications by the user and/orby the overlay management component 190-1. Additionally, the shareablecomposite overlay information may further include a list of overlayelement identifiers associated with the one or more overlay UI elementsin the shareable composite overlay image or shareable composite overlayvideo represented by the shareable composite overlay information.

After the shareable composite overlay information is generated, themessaging application 124-1-1 and/or social application 124-1-2 may beconfigured to transmit the shareable composite overlay information toone or more users having associated user account information as one ormore social messages and/or one or more profile activities (e.g., posts,etc.) via the social networking system 101.

In some embodiments, the messaging application 124-1-1 and/or socialapplication 124-1-2 may also be configured to receive shareablecomposite overlay information representative of one or more compositeoverlay images generated and transmitted by other users utilizing one ormore devices (e.g., mobile device 102-2, etc.) via social networkingsystem 101 as one or more social messages and/or one or more profileactivities. In those embodiments, the received shareable compositeoverlay information from other users in the social networking system 101may be further rendered and visually presented by the messagingapplication 124-1-1 and/or social application 124-1-2 on a displayscreen (e.g., display screen 310 of FIG. 3, 4, 5A-5D, etc.) of thedisplay device 168 of the touch sensitive display component 182.

In some embodiments, after shareable composite overlay informationrepresentative of an overlay image is shared with one or more otherusers (e.g., shared utilizing one or more social messages, one or moreprofile activities, etc.) via the social networking system 101, thesocial networking overlay component 110-3 may be configured to providethe recipient user with access to one or more overlay UI elementsincluded within the shareable composite overlay information based atleast partially on the list of overlay element identifiers included inthe shareable composite overlay information and overlaycommercialization information associated with each overlay UI elementidentified by the list of overlay element identifiers.

In those embodiments, the social networking overlay component 110-3 maybe configured to provide access by updating the user overlay ownershipinformation associated with the recipient user's user profileinformation. Additionally or alternatively, individual overlay UIelements may also be shared without the accompanying rendered imageinformation and/or rendered video information for future use byutilizing, for example, one or more social messages including theassociated overlay element identifier to one or more users. However, itmay be appreciated that an overlay UI element having an associated pricefor purchase as indicated overlay commercialization informationassociated with that overlay UI element may not be provided for sharingwithout first being purchased by the recipient user.

FIG. 2A illustrates an operating environment of a social networkingoverlay component. As illustrated in FIG. 2A, the operating environment200 may include, but is not limited to the social networking overlaycomponent 110-3. The social networking overlay component 110-3 mayinclude, but is not limited to, social networking overlay managementcomponent 244, context determination component 246, and/or overlayselection component 248.

In some embodiments, social networking overlay management component 244may be configured to manage access to overlay element information forone or more users based at least partially on one or more purchasesand/or requests to access one or more overlay UI elements and/or one ormore overlay UI elements shared with a user. Moreover, the socialnetworking overlay management component 244 may be configured to receivea request from an overlay component 190 of a messaging application124-1-1 and/or social application 124-1-2 for overlay elementinformation representative of one or more overlay UI elements based atleast partially on overlay element identifier information, retrieve therequested overlay element information from the overlay datastore 112-3,and provide the retrieved overlay element information to the overlaycomponent 190 of a messaging application 124-1-1 and/or socialapplication 124-1-2.

In some embodiments, the social networking overlay management component244 may also be optionally configured to analyze one or more socialmessages stored in the messages datastore 112-1 and/or one or moreprofile actives storied in activities datastore 112-3 to determine useroverlay usage information 222 for each user and overlay popularityinformation for each overlay UI element. To ensure and respect a user'sprivacy, in some embodiments, the social networking overlay managementcomponent 244 may be configured to analyze one or more profile activesstoried in activities datastore 112-3, when the user overlay preferencesinformation indicates that the user has authorized the social networkingsystem 101 to analyze one or more social messages and/or one or moreprofile activities of a user.

In some embodiments, including, but is not limited to, embodiments whereone or more overlay UI elements may be sponsored, the social networkingoverlay management component 244 may be configured to providepromotional information (e.g., provide promotional information viae-mail, social messages, profile activities, etc.) which may include,promotions and/or discounts in the form of promotion codes and/ordiscount codes (e.g., discount barcodes such as QR codes, alphanumericvalues, etc.) to one or more users, based at least partially on overlaycommercialization information associated with each overlay UI element.Moreover, the overlay commercialization information may indicate that auser sharing the associated overlay UI element with one or morerecipient users and/or the one or more recipient users receiving theassociated overlay UI element may receive promotions and/or discounts asindicated in the overlay commercialization information for that overlayUI element.

In those embodiments, the social networking overlay management component244 may be configured to provide the promotional information associatedwith an overlay UI element to a user and/or one or more recipient users,when the user shares the overlay UI element (e.g., sharing a shareablecomposite overlay image and/or video including the overlay UI element,sharing the overlay UI element by itself, etc.) with the one or morerecipient users via one or more social messages and/or profileactivities. It may be appreciated that the user sharing the overlay UIelement and/or the one or more recipient users may receive the samepromotional information or different promotional information based onthe commercialization information associated with each overlay UIelement. This may empower users to share one or more overlay UI elementsand obtain ownership with the one or more overlay UI elements sharedwith them while receiving discounts and/or promotions associated withsharing overlay UI elements.

In some embodiments, the social networking overlay management component244 may be configured to receive overlay element information for anyuser created or user customized overlay UI elements, and store thereceived overlay element information representative of overlay UIelements created by a user or customized by a user in the overlaydatastore 112-3.

In some embodiments, social networking overlay management component 244may also be configured to request the determination of a user contextinformation 224 and/or a list of aggregate overlay information 230 bythe context determination component 246 and the overlay selectioncomponent 248 for a user having an associated user profile information210, in response to receiving a request from an overlay component 190 ofa messaging application 124-1-1 and/or social application 124-1-2 forthe user context information 224 and list of aggregate overlayinformation 230. The social networking overlay management component 244may also be configured to provide the user context information 224and/or the list of aggregate overlay information 230 to the user havingthe associated user profile information 210.

In some embodiments, the context determination component 246 may beconfigured to determine user context information 224 for a particularuser based at least partially on user profile information 210 (e.g.,user interest information, user group membership information, usersocial messages information, user biographic and/or demographicinformation, user event information, user search information, etc.),location information 212, and/or any other information associated with auser's presence within the social networking system 101.

The user context information 224 may include, but is not limited to, atleast one user context represented by user communication contextinformation 224-1, user location context information 224-2, user eventcontext information 224-3, user external event context information224-4, user interest context information 224-5, and/or any other usercontext information that may be determined based at least partially on auser's presence within the social networking system 101.

In some embodiments, the user location context information 224-2 mayidentify at least one user location context, which may include, but isnot limited to, one or more approximate locations (e.g., one or morepoints of interests within a circular shaped geo-fence having a specificradius such as 100 feet, 500 feet, 1000 feet, etc.) for a device (e.g.,mobile device 102-1, etc.) associated with a user. The contextdetermination component 246 may be configured to determine the userlocation context information 224-2 based at least partially on locationinformation 212, user profile information 210 (e.g., user biographicand/or demographic information, user event information, etc.), and/orcalendar event information 214. In one non-limiting example, userlocation context information 224-2 may indicate that a user is currentlylocated at a “McDonald's” with an associated address of “1060 N.Rengstorff Ave., Mountain View, Calif. 94043.” In another non-limitingexample, the user location context information 224-2 may indicate theuser is currently located at “Home” with an associated address or at“Work” with an associated address based at least partially on userprofile information (e.g., user biographic and/or demographicinformation, etc.) and location information 212. In yet anothernon-limiting example, user location context information 224-2 mayindicate that the user may be currently at a “Birthday Party Event” withan associated address based at least partially on location information212, user profile information, and/or calendar event information 214.

In some embodiments, the user event context information 224-3 mayidentify at least one user event context which may include, but is notlimited to, one or more current events that the user intends toparticipate, the location of that event, and the number of users who aresocially connected to the user that are also intending to participate oris currently participating. The context determination component 246 maybe configured to determine the user event context information 224-3based at least partially on calendar event information 214, locationinformation 212, and/or user profile information 210 (e.g., user eventinformation, user social connections information, etc.) associated withone or more users. In one non-limiting example, the user event contextinformation 224-3 may indicate that the user intends to attend a“Birthday Party Event” at an associated address and two of the user'sfriends are also intending to attend. In another non-limiting example,the user event context information 224-3 may indicate that the user isintending to attend a “Beyoncé® Concert Event” at an associated addresswhere ten of the user's friends are also intending to attend.

In some embodiments, user interest context information 224-5 mayidentify at least one user interest context which may include, but isnot limited to, one or more current interests (e.g., favorite artists,favorite movies, favorite music, favorite books, favorite sports,favorite locations, favorite food, etc.) of a user. The contextdetermination component 246 may be configured to determine user interestcontext information 224-5 based at least partially on the user profileinformation 210 (e.g., user interest information, user searchinformation, user biographic and/or demographic information, user eventinformation, user group membership information, etc.) and/or calendarevent information 214. In one non-limiting example, the interest contextinformation may identify a user who shows an interest for a particularartist such as “Beyoncé”®, when a user lists the particular artist asone of their favorite artists based on user interest information, is amember of one or more groups associated with a particular artist or thatgenre of music by the particular artist based on the user groupmembership information, is located within the same hometown as theparticular artist based on the user biographic and/or demographicinformation, intends to attend an event by that particular artist basedat least partially on user profile information 210 (e.g., user eventinformation, etc.) and/or calendar event information 214, and/or isfrequently searched by the user in the social networking system 101based at least partially on user profile information 210 (e.g., usersearch information, etc.).

In some embodiments, user communication context information 224-1 mayidentify at least one current or recent user communication context whichmay include, but is not limited to, recent conversation topic(s) that isbeing discussed between a user with one or more other users and thesocial relationship with respect to the one or more users. The contextdetermination component 246 may be configured to determine the usercommunication context information 224-1 based at least partially on usersocial messages information, user profile discussion information, and/oruser social connections information. Moreover, the context determinationcomponent 246 may analyze one or more social messages to identify one ormore “triggers” such as, for example, one or more keywords and/or othercontent (e.g., composite overlay images and/or videos shared betweenusers) to identify conversation topics. In one non-limiting example, theuser communication context information 224-1 may identify that the useris currently or was recently discussing about art galleries with anotheruser in the social networking system 101 who is identified as theirspouse. In another non-limiting example, the user communication contextinformation 224-1 may identify that the user is currently or wasrecently discussing about artist “Beyoncé”®, when the user recentlyposted on his profile a particular artist utilizing for example a@mention (e.g., “@Beyoncé”®, etc.) or in a social message to one or moreusers in the social networking system 101 identified as their friend.

In some embodiments, user external event context information 224-4 mayidentify at least one user external event context which may include, butis not limited to, one or more current external events in one or moreregions associated with the user's current location. The contextdetermination component 246 may be configured to determine the userexternal event context information 224-4 by retrieving information fromone or more network accessible sources (e.g., websites such asWikipedia, datastores, etc.) utilizing one or more APIs of the one ormore network accessible sources. These current events may include, butis not limited to, weather events for indicating the current weather(e.g., sunny, partly cloudy, rain, thunderstorm, snow, etc.) andassociated temperature with respect to the user's location, sportsevents for indicating the current local sports and/or global sportsgames currently being played (e.g., a World Cup Soccer Game currentlybeing played between Germany and Argentina, etc.), holiday events forindicating the current holiday (e.g., Christmas, Halloween, VeteransDay, etc.) or any other events that may be common to some or all userswithin one or more regions associated with the user's current location.

In some embodiments, after the context determination component 246determines the user context information 224, the overlay selectioncomponent 248 may be configured to determine a list of aggregate overlayinformation 230. As discussed above and elsewhere, each aggregateoverlay information in the list of aggregate overlay information 230 mayinclude at least one overlay element identifier that identifies at leastone overlay UI element stored in the overlay datastore 112-3 andutilized by the overlay component 190 to render and/or visually presentone or more UI views (e.g., composite overlay preview UI views,composite overlay preview UI element, composite overlay UI views, etc.),composite overlay images, and/or composite overlay videos.

In some embodiments, the overlay selection component 248 may beconfigured to generate a list of aggregate overlay information includingone or more overlay element identifiers based at least partially onthird party overlay collection 218-1, social overlay collection 218-2,user overlay collection 218-3, overlay promotion information 219, userprofile information 210 (e.g., user overlay ownership information, useroverlay usage information, etc.), and/or the user context information224.

The third party overlay collection 218-1 may include, but is not limitedto, overlay element information representative of overlay UI elementsthat are associated with third party entities (e.g., entities that donot operate the social networking system 101) such as, for example,Starbucks™, McDonald™, Disney™, or any other third party entity based atleast partially on overlay source information.

The social overlay collection 218-2 may include, but is not limited to,overlay element information representative of overlay UI elements thatare associated with the social networking system 101 (e.g., entitiesthat operates the social networking system 101) such as, for example,Facebook™, LinkedIn™, MySpace™, or any other social networking entitybased at least partially on overlay source information.

The user overlay collection 218-3 may include, but is not limited to,overlay element information representative of overlay UI elements thatare user created or user customized by one or more users of the socialnetworking system 101 based at least partially on overlay sourceinformation.

In some embodiments, the overlay selection component 248 may beconfigured to select at least one overlay UI element from the one ormore overlay UI elements included in third party overlay collection218-1, social overlay collection 218-2, and/or user overlay collection218-3. Additionally, in order to provide user with exposure to variousoverlay UI elements, the overlay selection component 248 may beconfigured to select a predetermined number (e.g., 5, 10, 15, etc.) ofoverlay UI elements from third party overlay collection 218-1, apredetermined number (e.g., 5, 10, 15, etc.) of overlay UI elements froma social overlay collection 218-2, and/or a predetermined number (e.g.,5, 10, 15, etc.) of overlay UI elements from a user overlay collection218-3. The overlay selection component 248 may select the at least oneoverlay UI element by searching the third party overlay collection218-1, the social overlay collection 218-2, and/or the user overlaycollection 218-3, for at least one overlay UI element having overlaycontext information including one or more context terms thatapproximately matches the one or more contexts indicated in the usercontext information 224 (e.g., at least one context term matches atleast one context).

In one non-limiting example, the overlay selection component 248 may beconfigured to select an overlay UI element representative of an artframe (e.g., overlay UI element 254-3) having an overlay contextinformation with one or more terms indicating that associated contextfor the overlay UI element includes, but is not limited to, “artgallery” and/or “art galleries”, when the user communications contextinformation 224-1 indicates that the user is currently discussing artgalleries with their friend via one or more social messages.

In one non-limiting example, the overlay selection component 248 may beconfigured to select an overlay UI element representative of a Heart(e.g., overlay UI element 254-2) having an overlay context informationwith one or more terms indicating that associated context for theoverlay UI element includes, but is not limited to, “Love” “SignificantOther”, “Heart”, “Spouse”, “Girl Friend”, and/or “Boy Friend”, when theuser communications context information 224-1 indicates that the user iscurrently having a conversation with their spouse via one or more socialmessages.

In still another non-limiting example, the overlay selection component248 may be configured to select an overlay UI element representative ofa coffee cup (e.g., overlay UI element 254-1) having an overlay contextinformation with one or more terms indicating that associated contextfor the overlay UI element includes, but is not limited to, “Coffee”and/or “Starbucks”™, when the user location context information 224-2indicates that the user and their mobile device 102-1 are currentlylocated at a Starbucks™.

In yet another non-limiting example, the overlay selection component 248may be configured to select an overlay UI element representative of twoparty hats (e.g., overlay UI element 254-6) having overlay multi-personinformation indicating that the overlay UI element is appropriate fortwo persons and an overlay context information with one or more termsindicating that associated context for the overlay UI element includes,but is not limited to, “Hats”, “Birthday”, and/or “Party”, when the userlocation context information 224-2 correlated with the user eventcontext information 224-3 indicates that the user and their mobiledevice 102-1 are currently located at a “Birthday Party Event” with anassociated address where two of the user's friends are also attendingthe “Birthday Party Event.”

In a further non-limiting example, the overlay selection component 248may be configured to select an overlay UI element representative of rainclouds (e.g., overlay UI element 254-8) having an overlay contextinformation with one or more terms indicating that associated contextfor the overlay UI element includes, but is not limited to, “Rain”and/or “Rain Clouds”, when the user external event context information224-4 indicates that the current weather is rain at a location and localtime associated with the mobile device 102-1 of the user.

In yet a further non-limiting example, the overlay selection component248 may be configured to select an overlay UI element representative ofMickey Mouse™ holding an Umbrella (not shown) having an overlay contextinformation with one or more terms indicating that associated contextfor the overlay UI element includes, but is not limited to, “Rain”and/or “Disney”™, “Mickey Mouse”™, when the user external event contextinformation 224-4 indicates that the current weather is rain at alocation and local time associated with the mobile device 102-1 of theuser and the user location context information 224-2 indicates that theuser and their mobile device 102-1 are currently at “Disneyland Park”with an associated address.

In yet another non-limiting example, the overlay selection component 248may be configured to select an overlay UI element representative ofMickey Mouse™ holding an Umbrella and having an overlay contextinformation with one or more terms indicating that associated contextfor the overlay UI element includes, but is not limited to, “DisneylandPark”™, “Disneyland”™, “Umbrella”, “Rain”, “Disney”™, and/or “MickeyMouse”™, when the user external event context information 224-4indicates that the current weather is rain at a location and local timeassociated with the device such as, for example, the mobile device 102-1of the user and the user location context information 224-2 indicatesthat the user and their mobile device 102-1 are currently at “DisneylandPark” with an associated address.

In yet another non-limiting example, the overlay selection component 248may be configured to select an overlay UI element representative of aCompact Disc and a musical note (e.g., overlay UI element 254-5) havingan overlay context information with one or more terms indicating thatassociated context for the overlay UI element includes, but is notlimited to, “Music”, “Compact Disc”, “Music Artist”, and/or “Pop Music”,when the user interest context information 224-5 indicates that the userlikes music or likes one or more music artists such as “Beyoncé”®.

In some embodiments, the overlay selection component 248 may beconfigured to bias the selection of overlay UI elements by limiting theselection of overlay UI elements from the third party overlay collection218-1 to selecting only or exclusively overlay UI elements havingoverlay source information and/or overlay context information that areidentified in the overlay promotion information 219. Moreover, theoverlay promotion information 219 may include, but is not limited topromotion source information and promotion context information. Thepromotion source information may include, but is not limited to, one ormore affiliates or sponsors (e.g., commercial entities, non-profitentities, government entities, etc.) that may have provided incentives(e.g., paid financial incentives) and/or pecuniary interests to theoperators of the social networking system 101 and may correspond to oneor more promotion contexts represented by promotion context informationfor a particular context the affiliates or sponsor is interested inpromoting (e.g., coffee, music, etc.). This may enable affiliates orsponsors to promote their overlay UI elements in a particular context(e.g., Starbucks™ promoting their coffee, etc.) as a means of increasingbrand recognition by advertisement via sharing of one or more sponsoredoverlay UI elements.

After selecting one or more overlay UI elements, in the overlayselection component 248 may be configured to sort and/or rank the one ormore selected overlay UI elements based at least partially onpopularity. In some embodiments, the overlay selection component 248 maybe configured to sort and/or rank by starting with the most popular UIelements in a set time period (e.g., one day, one week, one month, oneyear, all time, etc.) based at least on the overlay popularityinformation associated with each overlay UI element that were selected.Moreover, the overlay popularity information may include, but is notlimited to, values indicating the number of times a particular overlayUI element has been shared between and among users in a set time periodsuch as, for example, one day, one week, one month, one year, all time,and/or any other set time period. Accordingly, by sorting and/or rankingthe selected overlay UI elements based at least partially on the overlaypopularity information associated with each selected overlay UI element,a user may be visually presented with the popular overlay UI elementsfirst in the composite overlay preview UI view (e.g., composite overlaypreview UI view 400).

Additionally or alternatively, the overlay selection component 248 maybe configured to utilize well known machine learning algorithms todetermine popularity of overlay UI elements between and among usershaving particular user profile information 210 (e.g., user demographicand/or biographic information, user interest information, etc.). In onenon-limiting exemplary embodiment, the overlay selection component 248may determine an ideal collection of biographic, demographic, and/orinterest information for a user that is very likely to share a selectedoverlay UI element, i.e., an ideal overlay profile informationassociated with the overlay UI element utilizing well known machinelearning algorithms based at least partially on the user profileinformation (e.g., user location information, etc.) for one or moreusers that shared the one or more overlay UI elements and identified byoverlay popularity information (e.g., user profile identifierinformation included in the overlay popularity information) associatedwith the overlay UI element.

With continued reference to the above non-limiting exemplary embodiment,the overlay selection component 248 may then determine user profilebased overlay popularity information for each selected overlay UIelement by for example comparing the user profile information 210 (e.g.,user demographic and/or biographic information, user interestinformation, etc.) of a user requesting the list of aggregate overlayelement information 230 and/or user context information 224 with theideal overlay profile information for a selected overlay UI element. Thedetermined user profile based overlay popularity information mayidentify a popularity value (e.g., a normalized value from 1 to 100where 100 being the most popular, etc.) of a specific overlay UI elementfor the user having specific user profile information 210, such as, forexample, a user having user demographic and/or biographic informationindicating that the user is a male between the age of 18 and 25 and userinterest information indicating that the user likes music artist“Beyoncé”®. The overlay selection component 248 may then sort and/rankby starting with the most popular overlay UI elements, including, but isnot limited to, overlay UI elements that are sponsored by affiliates orsponsors (e.g., commercial entities such as “Beyoncé”®, etc.), in a settime period based at least on the user profile based overlay popularityinformation for each selected overlay UI element. This may enable theoverlay selection component 248 to provide the most popular overlay UIelements (e.g., most popular overlay UI element that matches artist“Beyoncé”®) for a user having specific user profile information 210(e.g., a male between age 18 and 25) first before the less popularoverlay UI elements.

Additionally or alternatively, the overlay selection component 248 maybe configured to sort and/or rank the selected overlay UI elements basedat least partially on user profile information 210 (e.g., user overlayownership information, user overlay usage information, etc.) and inparticular, user overlay ownership information and/or user overlay usageinformation. Moreover, the overlay selection component 248 may beconfigured to sort and/or rank a predetermined number (e.g., 1, 2, 3,etc.) of selected overlay UI elements to the front of the list for anyselected overlay UI elements that the user owns and/or has recently usedas indicated by the user overlay ownership information and/or useroverlay usage information. This may assist users in the management ofoverlay UI elements that user already owns and promote overlay UIelements that the user does not already own.

In some embodiments, after the overlay selection component 248 hasselected, sorted, and/or ranked the overlay UI elements based at leastpartially on user profile information 210, user context information 224,and/or overlay promotion information 219, the overlay selectioncomponent 248 may generate the list of aggregate overlay information,where each aggregate overlay information may include at least oneoverlay element identifier corresponding to a selected overlay UIelement. Additionally, in instances when the selected overlay UIelements are sorted and/or ranked, the most popular, the owned, and/orrecently used overlay UI elements may be placed to the front of the listin accordance with the above discussion.

In some embodiments, each aggregate overlay information may also includemore than one overlay element identifier (e.g., 2, 3, etc.) where morethan one selected overlay UI elements may be combined up to a predefinedmaximum value (e.g., 2, 3, etc.). Moreover, the predefined maximum valuemay ensure that only some or few selected overlay UI elements areultimately visually presented in a composite overlay UI element (e.g.,composite overlay UI element 410-1-1) and/or one or more compositeoverlay UI views (e.g., composite overlay UI views 500, 520, 540, 560,etc.) on a mobile device (e.g., mobile device 102-1).

In some embodiments, after the list of aggregate overlay information hasbeen generated, the social networking overlay management component 244may transmit the generated list of aggregate overlay information 230 anduser context information 224 to the mobile device (e.g., mobile device102-1) associated with a user having an associated user profileinformation that requested the generation of the list of aggregateoverlay information 230.

FIG. 2B illustrates an operating environment 250 of one or more overlayUI elements stored in an overlay datastore 112-3. As illustrated in FIG.2B, the overlay datastore 112-3 which may include, but is not limitedto, third party overlay collection 218-1, social overlay collection218-2, and user overlay collection 218-3. As discussed above and/orelsewhere, third party overlay collection 218-1, social overlaycollection 218-2, and user overlay collection 218-3 may each include butis not limited to overlay element information representative of one ormore overlay UI elements 254-e.

The one or more overlay UI elements 254-e may include, but is notlimited to, overlay UI elements 254-1 representative of a coffee cup,overlay UI element 254-2 representative of a heart, overlay UI element254-3 representative of an art frame, overlay UI element 254-4representative of currency, overlay UI element 254-5 representative of aCompact Disc and a musical note, overlay UI element 254-6 representativeof a party hat or party hats, overlay UI element 254-7 representative ofa birthday cake, overlay UI element 254-8 representative of rain,overlay UI element 254-9 representative of a text bubble, and/or anyother overlay UI element that may be utilized to represent one or moreuser contexts as identified in the user context information 224.

It may be appreciated that while not illustrated, one or more of theoverlay UI elements 254-e may be animated (e.g., animated gifs, videoswith defined alpha regions, etc.). In one non-limiting example, theoverlay UI element 254-8 representative of rain may include, but is notlimited to, animated rain drops that fall from top to bottom.

FIG. 3 illustrates an exemplary image/video share user interface view300. As illustrated in FIG. 3, the image/video share UI view 300, mayinclude, but is not limited to, display screen 310, visual presentationof image and/or video information, i.e., background image and/or video314, a selectable add overlay UI element 312, a selectable add image UIelement 320, and/or a selectable share UI element 316.

In some embodiments, the image/video share user interface view 300 maybe visually presented, when a user requests the messaging application124-1-1 and/or social application 124-1-2 to visually present animage/video share UI view (e.g., image/video share UI view 300, etc.).This may occur when a user of a mobile device (e.g., mobile device102-1, etc.) selects to transmit (e.g., transmit via one or more socialmessages, posts, etc.) an existing image and/or video information storedin an image datastore (not shown) of the system memory 120 and/orstorage component 150. This may also occur, when a user of a mobiledevice (e.g., mobile device 102-1, etc.) selects to capture (e.g.,transmit via one or more social messages, posts, etc.) a new imageand/or video via image capture component 154.

The background image and/or video 314 may be representative of a livepreview on display screen 310 of a user taking a picture of himself orherself utilizing the mobile device 102-1. To visually present the livepreview, the overlay component 190 may receive image information and/orvideo information in near real time from the image capture component 154of the mobile device 102-1 and render and visually present the capturedimage information and/or video information on the display screen 310 ofmobile device 102-1 in near real time. Additionally or alternatively,background image and/or video 314 may be representative of image orvideo information previously stored in an image datastore (not shown) ofthe system memory 120 and/or storage component 150.

The selectable add overlay UI element 312 may be selected by a userutilizing a selection finger gesture to request a preview of one or morecomposite overlay UI views in a composite overlay preview UI view (e.g.,composite overlay preview UI view 400) for addition to the backgroundimage/video 314. Additionally or alternatively, the add overlay UIelement 312 may also be selected by a user utilizing a selection fingergesture to request to add one or more overlay UI elements (i.e., an addoverlay UI element request discussed above and/or elsewhere).

The selectable add image UI element 320 may be selected by a userutilizing a selection finger gesture to request to add an additionalimage in the image/video share user interface view 300 and/or in acomposite overlay preview UI view (e.g., composite overlay preview UIview 400) as discussed above and/or elsewhere.

The selectable share UI element 316 may be selected by a user utilizinga selection finger gesture to request the overlay management component190-1 to share a composite overlay image or composite overlay video assubstantially visually presented in the image/video share UI view 300and/or one or more composite overlay UI views (e.g., composite overlayUI views 500, 520, 540, 560, etc.) excluding selectable add overlay UIelement 312, a selectable add image UI element 320, and/or a selectableshare UI element 316.

FIG. 4 illustrates a composite overlay preview user interface view 400.As illustrated in FIG. 4, the composite overlay preview UI view 400,which may be a scrollable composite overlay preview UI view 400 and mayinclude, but is not limited to one or more selectable composite overlayUI elements 410-m-n arranged in a 3 by 3 grid and a selectable createoverlay UI element 412. To enable a user to preview additional overlayUI elements that are not currently visually presented in the scrollablecomposite overlay preview UI view 400, the user may scroll (e.g., up,down, left, or right, etc.) utilizing a scroll finger gesture in thecomposite overlay preview UI view 400 to request additional compositeoverlay UI elements 410-m-n to be visually presented in the compositeoverlay review UI view 400.

Each selectable composite overlay UI element correspond to eachaggregate overlay information in the list of aggregate overlayinformation 230. Accordingly, each selectable composite overlay UIelement may also include a rendered visual presentation of at least oneoverlay UI element such as overlay UI element 254-8 representative ofrain as applied in background image and/or video 314. As discussed aboveand elsewhere, each selectable composite overlay UI elements may bepositioned, oriented, and/or proportioned based at least partially onthe features detected in the background image and/or video 314 andoverlay feature alignment information associated with each overlay UIelement.

In instances when the list of aggregate overlay information 230 issorted and/or ranked, the front of that list of aggregate overlayinformation 230 (e.g., the most popular, etc.) may correspond to the topleft corner of the 3 by 3 grid (e.g., composite overlay UI element410-1-1) where the remaining aggregate overlay information maycorrespond to other composite overlay UI elements in the same row (e.g.,composite overlay UI element 410-1-2, 410-1-3, etc.) then on wards tothe next row of composite overlay UI elements (e.g., composite overlayUI element 410-2-1, 410-2-2, 410-2-3, etc.) and so forth.

The selectable create overlay UI element 412 may be selected by a userutilizing a selection finger gesture to enable a user to create theirown overlay UI element by adding a new existing image or animated imageor video or create a new overlay UI element by drawing a new overlay UIelement in one or more UI views (not shown) utilizing one or more fingergestures.

FIGS. 5A-5D illustrate embodiments of composite overlay user interfaceviews 500, 520, 540, 560, which may be scrollable, composite overlay UIviews 500, 520, 540, 560. Moreover, the scrollable composite overlay UIviews 500, 520, 540, 560 may enable a user to preview additionalcomposite overlay UI views that includes varying overlay UI elements,utilizing a scroll finger gesture in the composite overlay UI views 500,520, 540, and/or 560 to scroll (e.g., up, down, left, or right, etc.)and cycle between various composite overlay UI views 500, 520, 540,and/or 560. Additionally, each composite overlay UI view (e.g.,composite overlay UI view 500) may also correspond to a compositeoverlay UI element (e.g., composite overlay UI element 410-1-1) of thecomposite overlay preview UI view 400.

As illustrated in FIGS. 5A-5D, one or more overlay UI elements 210-evisually presented in the composite overlay UI views 500, 520, 540, 560,may be a movable and/or editable overlay UI elements 210-e. This mayenable a user to move the one or more overlay UI elements 210-e tovarious positions on the display screen 310 utilizing a movement fingergesture. Additionally, this may also enable a user to edit one or moreattributes (e.g., overlay color information, overlay text information,overlay illustrated graphical UI elements information, etc.) associatedwith the one or more overlay UI elements 210-e utilizing an edit fingergesture to begin editing one or more attributes of an overlay UIelement. It may be appreciated that while some or most overlay UIelements in composite overlay UI views are generally visually presentedto be on top of the background image/video, the one or more overlay UIelements 210-e may also be visually presented behind the backgroundimage and/or video as desired.

As illustrated in FIG. 5A, the composite overlay UI view 500 may berepresentative of a user utilizing his or her mobile device 102-1 totake a picture or video of himself or herself for sharing via one ormore social messages or posts. Additionally, the current weather at theuser's location may indicate that it is currently raining. As such, theuser external event context information 224-4 may indicate that thecurrent weather at the location and local time associated with themobile device 102-1 is rain. Accordingly, a suggested context sensitiveoverlay UI element as illustrated in the composite overlay UI view 500may include, but is not limited to, overlay UI element 254-8representative of rain.

As illustrated in FIG. 5B, the composite overlay UI view 520 may berepresentative of a user utilizing his or her mobile device 102-1 totake a picture or video of himself or herself to share with his or herspouse via one or more social messages. As such, the associated usercommunications context information 224-1 may indicates the user iscurrently having a conversation with their spouse via one or more socialmessages. Accordingly, the suggested context sensitive overlay UIelements as illustrated in the composite overlay UI view 520 mayinclude, but is not limited to, overlay UI element 254-2 representativeof a heart and a suggested conversation bubble with associated overlaytext 522 of “I Love You!” Additionally, as discussed above and/orelsewhere, the user may also begin to modify one or more attributes suchas, for example, the overlay color 524 of overlay UI element 254-2representative of the heart utilizing a edit finger gesture andselecting and selecting a new overlay color using one or more UIelements (not shown).

As illustrated in FIG. 5C, the composite overlay UI view 540 may berepresentative of a user utilizing his or her mobile device 102-1 totake a picture or video of himself or herself to share with his or herfriends while currently attending his or her own birthday party eventand discussing, via one or more social messages, that received money asa gift. As such, the associated user communications context information224-1 may indicate that the user is currently having a conversation withtheir friends via one or more social messages about money and theassociated location context information 224-2 may indicate that the useris currently attending a birthday party event. Accordingly, thesuggested context sensitive overlay UI elements as illustrated in thecomposite overlay UI view 540 may include, but is not limited to,overlay UI element 254-7 representative of a birthday cake, and overlayUI element 254-4 representative of currency or money.

As illustrated in FIG. 5D, the composite overlay UI view 540 may berepresentative of a user utilizing his or her mobile device 102-1 totake a picture or video of himself or herself to share with his or herfriends while currently attending his or her own birthday party eventwhere two or more of the user's friends are also at the location of theevent. As such, the associated user location context information 224-2may indicate that the user is currently attending a birthday party eventand the user event context information 224-3 may indicate that there arecurrently four friends of the user also attending the birthday partyevent. Accordingly, the one or more suggested context sensitive overlayUI elements as illustrated in the composite overlay UI view 540 mayinclude, but is not limited to, overlay UI element 254-6 representativeof party hats which may be used for two persons and overlay UI element254-7 representative of a birthday cake. Additionally, the user may alsoadd a new image 564 representative of a friend who couldn't make it tothe birthday party event utilizing the selectable add image UI element320. This may enable the user to create a shareable composite overlayimage or video that may combine images from multiple users who arecurrently separated.

Included herein is a set of flow charts representative of exemplarymethodologies for performing novel aspects of the disclosedarchitecture. While, for purposes of simplicity of explanation, the oneor more methodologies shown herein, for example, in the form of a flowchart or flow diagram, are shown and described as a series of acts, itis to be understood and appreciated that the methodologies are notlimited by the order of acts, as some acts may, in accordance therewith,occur in a different order and/or concurrently with other acts from thatshown and described herein. For example, those skilled in the art willunderstand and appreciate that a methodology could alternatively berepresented as a series of interrelated states or events, such as in astate diagram. Moreover

FIG. 6 illustrates one embodiment of a logic flow 600. The logic flow600 may be representative of some or all of the operations executed byone or more embodiments described herein.

In the illustrated embodiment shown in FIG. 6, the logic flow 600 maystart at block 602 and may receive a request from a mobile device todetermine a list of aggregate overlay information and user contextinformation at step 604. For example, social networking overlaymanagement component 244 may receive a request from mobile device 102-1to determine a list of aggregate overlay information 230 and usercontext information 224.

The logic flow 600 may determine the user context informationrepresentative of at least one user context based at least partially onuser profile information, location information, calendar eventinformation, and/or external event information at 406. For example,context determination component 246 may determine the user contextinformation 224 representative of at least one user context based atleast partially on user profile information 210, location information212, calendar event information 214, and/or external event information216.

The logic flow 600 may generate the list of aggregate overlayinformation based at least partially on the user profile information,overlay promotion information, and the user context information at 608.For example, overlay selection component 248 may generate the list ofaggregate overlay information 230 based at least partially on the userprofile information 210, overlay promotion information 219, and the usercontext information 224.

The logic flow 600 may provide the list of aggregate overlay informationand the user context information to the mobile device, each aggregateoverlay information in the list of aggregate overlay informationincluding at least one overlay UI element associated with the at leastone user context at 610. For example, the social networking overlaymanagement component 244 may provide the list of aggregate overlayinformation 230 and the user context information 224 to the mobiledevice 102-1, each aggregate overlay information in the list ofaggregate overlay information 230 including at least one overlay UIelement (e.g., overlay UI element 254-8) associated with the at leastone user context.

The logic flow 600 may receive a request from the mobile device foroverlay element information representative of at least one overlay UIelement, the request comprising overlay element identifier informationrepresentative of the at least one overlay UI element at 612. Forexample, social networking overlay management component 244 may receivea request from the mobile device 102-1 for overlay element informationrepresentative of at least one overlay UI element (e.g., overlay UIelement 254-8), the request comprising overlay element identifierinformation representative of the at least one overlay UI element.

The logic flow 600 may provide the overlay element informationrepresentative of the at least one overlay UI element and identified bythe overlay element identifier information to the mobile device forrendering and visual presentation on a display screen of the mobiledevice at 614 and end at 616. For example, social networking overlaymanagement component 244 may provide the overlay element informationrepresentative of the at least one overlay UI element (e.g., overlay UIelement 254-8) and identified by the overlay element identifierinformation to the mobile device 102-1 for rendering and visualpresentation on a display screen 310 of the mobile device 102-1. Theexamples are not limited in this context.

Included herein is a set of non-limiting exemplary embodiments that isrepresentative of at least some of the novel aspects of the disclosedarchitecture. It may be appreciated that not all exemplary embodimentsare necessary for a novel implementation and in at least some of thenon-limiting exemplary embodiments, the one or more components,instructions, steps, elements including, but are not limited to, UIelements, and/or features may vary based at least partially on one ormore implementations.

In one non-limiting exemplary embodiment, the disclosed architecture mayinclude, but is not limited to, a computer implemented method,comprising the steps of receiving a request to preview at least onecomposite overlay user interface (UI) view in a composite overlaypreview UI view; requesting a social networking overlay component of asocial networking application for a list of aggregate overlayinformation by generating a request for the list of aggregate overlayinformation, in response to the received request to preview the at leastone composite overlay UI views; receiving the list of aggregate overlayinformation from the social networking overlay component, wherein eachaggregate overlay information of the list of aggregate overlayinformation comprises at least one overlay element identifier thatidentifies at least one overlay UI element represented by overlayelement information; and presenting, visually, on a display screen of amobile device the at least overlay UI element in the at least onecomposite overlay UI element of the composite overlay preview UI viewbased at least partially on the overlay element informationrepresentative of the at least overlay UI element.

With continued reference to above non-limiting exemplary embodiment ofthe computer-implemented method, the computer implemented method mayfurther comprise the steps of receiving a request from a user tovisually present a composite overlay UI view comprising the at least oneoverlay UI element; and presenting, visually, the overlay UI element ina composite overlay UI view based at least partially on the overlayelement information, the image information, and/or video information, inresponse to the request to visually present the composite overlay UIview.

With continued reference to above non-limiting exemplary embodiment ofthe computer-implemented method, the computer implemented method mayfurther comprise the step of generating shareable composite overlayinformation for sharing as at least one social message and/or at leastone profile activity via the social networking system, wherein theshareable composite overlay information comprises a shareable image orshareable video, the at least one overlay UI element, and the backgroundimage represented by the image information or background videorepresented by the video information.

With continued reference to above non-limiting exemplary embodiment ofthe computer-implemented method, the computer implemented method mayfurther comprise the step of modifying overlay position information,overlay size information, overlay orientation information associatedwith the at least one overlay UI element to align, orient, and/orproportion the at least one overlay UI element to at least one detectedfeature in a background image represented by the image information orbackground video represented by the video information.

With continued reference to above non-limiting exemplary embodiment ofthe computer-implemented method, the computer implemented method mayfurther comprise the step of enabling modification of at least oneattribute of the at least one overlay UI element, in response toreceiving a request from a user to modify the at least one overlayattribute associated with the at least one overlay UI element in acomposite overlay UI view.

With continued reference to above non-limiting exemplary embodiment ofthe computer-implemented method, the computer implemented method mayfurther comprise the steps of receiving user context information fromthe social networking overlay component, wherein user contextinformation comprises at least one of: user communication contextinformation, user location context information, user event contextinformation, user external event context information, user interestcontext information, or any combination thereof; and modifying at leastone overlay attribute of the at least one overlay UI element representedby the overlay element information based at least partially on thereceived user context information.

With continued reference to above non-limiting exemplary embodiment ofthe computer-implemented method, the computer implemented method mayfurther comprise the steps of requesting the overlay element informationfor at least one overlay UI element from the social networking overlaycomponent based at least partially on the at least one overlay elementidentifier in at least one aggregate overlay information of the list ofaggregate overlay information; and receiving the requested overlayelement information for the at least one overlay UI element, in responseto the request for overlay element information.

In the one non-limiting exemplary embodiment, the disclosed architecturemay also include, but is not limited to, an apparatus, comprising aprocessor circuit; memory operatively coupled to the processor circuit,the memory to store a social application and/or messaging application,the social application and/or messaging application comprising anoverlay component for execution by the processor circuit, the overlaycomponent comprising an overlay management component to receive arequest to preview at least one composite overlay user interface (UI)view in a composite overlay preview UI view, request a social networkingoverlay component of a social networking application for a list ofaggregate overlay information by generating a request for the list ofaggregate overlay information, in response to the received request topreview the at least one composite overlay UI views, and receive thelist of aggregate overlay information from the social networking overlaycomponent, wherein each aggregate overlay information of the list ofaggregate overlay information comprises at least one overlay elementidentifier that identifies at least one overlay UI element representedby overlay element information, and an overlay rendering component topresent, visually, on a display screen operatively coupled to theapparatus at least overlay UI element in the at least one compositeoverlay UI element of the composite overlay preview UI view based atleast partially on the overlay element information representative of theat least overlay UI element.

With continued reference to the first non-limiting exemplary embodimentof the apparatus, wherein the overlay management component is to furtherreceive a request from a user to visually present a composite overlay UIview comprising the at least one overlay UI element, and present,visually, the overlay UI element in a composite overlay UI view based atleast partially on the overlay element information, the imageinformation, and/or video information, in response to the request tovisually present the composite overlay UI view.

With continued reference to the first non-limiting exemplary embodimentof the apparatus, wherein the overlay management component is to furthergenerate shareable composite overlay information for sharing as at leastone social message and/or at least one profile activity via the socialnetworking system, wherein the shareable composite overlay informationcomprises a shareable image or shareable video, the at least one overlayUI element, and the background image represented by the imageinformation or background video represented by the video information.

With continued reference to the first non-limiting exemplary embodimentof the apparatus, wherein the request for the list of aggregate overlayinformation comprises location information and/or calendar eventinformation.

With continued reference to the first non-limiting exemplary embodimentof the apparatus, wherein the at least one overlay UI element having acost indicated by an associated overlay commercialization informationfor purchase by a user.

With continued reference to the first non-limiting exemplary embodimentof the apparatus, wherein a request to preview at least one compositeoverlay UI view is received from the social application and/or themessage application.

With continued reference to the first non-limiting exemplary embodimentof the apparatus, wherein the composite overlay preview UI viewcomprises a grid of at least one composite overlay UI element, eachcomposite overlay element configured to visually present a particularcomposite overlay UI view.

In the one non-limiting exemplary embodiment, the disclosed architecturemay further include, but is not limited to, at least onecomputer-readable storage medium comprising instructions that, whenexecuted, cause a system to receive a request to preview at least onecomposite overlay user interface (UI) view in a composite overlaypreview UI view, request a social networking overlay component of asocial networking application for a list of aggregate overlayinformation by generating a request for the list of aggregate overlayinformation, in response to the received request to preview the at leastone composite overlay UI views, receive the list of aggregate overlayinformation from the social networking overlay component, wherein eachaggregate overlay information of the list of aggregate overlayinformation comprises at least one overlay element identifier thatidentifies at least one overlay UI element represented by overlayelement information, and present, visually, on a display screen of amobile device the at least overlay UI element in the at least onecomposite overlay UI element of the composite overlay preview UI viewbased at least partially on the overlay element informationrepresentative of the at least overlay UI element.

With continued reference to the first non-limiting exemplary embodimentof the at least one computer-readable storage medium, wherein theinstructions, when executed, further cause the system to generateshareable composite overlay information for sharing as at least onesocial message and/or at least one profile activity via the socialnetworking system, wherein the shareable composite overlay informationcomprises a shareable image or shareable video, the at least one overlayUI element, and the background image represented by the imageinformation or background video represented by the video information.

With continued reference to the first non-limiting exemplary embodimentof the at least one computer-readable storage medium, wherein theinstructions, when executed, further cause the system to modify overlayposition information, overlay size information, overlay orientationinformation associated with the at least one overlay UI element toalign, orient, and/or proportion the at least one overlay UI element toat least one detected feature in a background image represented by theimage information or background video represented by the videoinformation.

With continued reference to the first non-limiting exemplary embodimentof the at least one computer-readable storage medium, wherein theinstructions, when executed, further cause the system to modify overlayposition information receive user context information from the socialnetworking overlay component, wherein user context information comprisesat least one of: user communication context information, user locationcontext information, user event context information, user external eventcontext information, user interest context information, or anycombination thereof, and modify at least one overlay attribute of the atleast one overlay UI element represented by the overlay elementinformation based at least partially on the received user contextinformation.

With continued reference to the first non-limiting exemplary embodimentof the at least one computer-readable storage medium, wherein theinstructions, when executed, further cause the system to request theoverlay element information for at least one overlay UI element from thesocial networking overlay component based at least partially on the atleast one overlay element identifier in at least one aggregate overlayinformation of the list of aggregate overlay information, and receivethe requested overlay element information for the at least one overlayUI element, in response to the request for overlay element information.

FIG. 7 illustrates an embodiment of an exemplary computing architecture700 suitable for implementing various embodiments as previouslydescribed, such as, for example server device 106 and/or one or moredevices 102-a. In one embodiment, the computing architecture 700 maycomprise or be implemented as part of an electronic device. In anotherembodiment, the computer architecture 700 may be implemented as part ofa cloud computing platform as a physical machine or virtual machine in anetwork of one or more physical and/or virtual machines. The embodimentsare not limited in this context.

As used in this application, the terms “system” and “component” areintended to refer to a computer-related entity, either hardware, acombination of hardware and software, software, or software inexecution, examples of which are provided by the exemplary computingarchitecture 700. For example, a component can be, but is not limited tobeing, a process running on a processor, a processor, a hard disk drive,multiple storage drives (of optical and/or magnetic storage medium), anobject, an executable, a thread of execution, a program, and/or acomputer. By way of illustration, both an application running on aserver and the server can be a component. One or more components canreside within a process and/or thread of execution, and a component canbe localized on one computer and/or distributed between two or morecomputers. Further, components may be communicatively coupled to eachother by various types of communications media to coordinate operations.The coordination may involve the uni-directional or bi-directionalexchange of information. For instance, the components may communicateinformation in the form of signals communicated over the communicationsmedia. The information can be implemented as signals allocated tovarious signal lines. In such allocations, each message is a signal.Further embodiments, however, may alternatively employ data messages.Such data messages may be sent across various connections. Exemplaryconnections include parallel interfaces, serial interfaces, and businterfaces.

The computing architecture 700 includes various common computingelements, such as one or more processors, multi-core processors,co-processors, memory units, chipsets, controllers, peripherals,interfaces, oscillators, timing devices, video cards, audio cards,multimedia input/output (I/O) components, power supplies, and so forth.The embodiments, however, are not limited to implementation by thecomputing architecture 700.

As shown in FIG. 7, the computing architecture 700 comprises aprocessing unit 704, a system memory 706 and a system bus 708. Theprocessing unit 704 can be any of various commercially availableprocessors, including without limitation an AMD® Athlon®, Duron® andOpteron® processors; ARM® application, embedded and secure processors;IBM® and Motorola® DragonBall® and PowerPC® processors; IBM and Sony®Cell processors; Intel® Celeron®, Core (2) Duo®, Itanium®, Pentium®,Xeon®, and XScale® processors; and similar processors. Dualmicroprocessors, multi-core processors, and other multi-processorarchitectures may also be employed as the processing unit 704.

The system bus 708 provides an interface for system componentsincluding, but not limited to, the system memory 706 to the processingunit 704. The system bus 708 can be any of several types of busstructure that may further interconnect to a memory bus (with or withouta memory controller), a peripheral bus, and a local bus using any of avariety of commercially available bus architectures. Interface adaptersmay connect to the system bus 708 via a slot architecture. Example slotarchitectures may include without limitation Accelerated Graphics Port(AGP), Card Bus, (Extended) Industry Standard Architecture ((E)ISA),Micro Channel Architecture (MCA), NuBus, Peripheral ComponentInterconnect (Extended) (PCI(X)), PCI Express, Personal Computer MemoryCard International Association (PCMCIA), and the like.

The computing architecture 700 may comprise or implement variousarticles of manufacture. An article of manufacture may comprise acomputer-readable storage medium to store logic. Examples of acomputer-readable storage medium may include any tangible media capableof storing electronic data, including volatile memory or non-volatilememory, removable or non-removable memory, erasable or non-erasablememory, writeable or re-writeable memory, and so forth. Examples oflogic may include executable computer program instructions implementedusing any suitable type of code, such as source code, compiled code,interpreted code, executable code, static code, dynamic code,object-oriented code, visual code, and the like. Embodiments may also beat least partly implemented as instructions contained in or on anon-transitory computer-readable medium, which may be read and executedby one or more processors to enable performance of the operationsdescribed herein.

The system memory 706 may include various types of computer-readablestorage media in the form of one or more higher speed memory units, suchas read-only memory (ROM), random-access memory (RAM), dynamic RAM(DRAM), Double-Data-Rate DRAM (DDRAM), synchronous DRAM (SDRAM), staticRAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM),electrically erasable programmable ROM (EEPROM), flash memory, polymermemory such as ferroelectric polymer memory, ovonic memory, phase changeor ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS)memory, magnetic or optical cards, an array of devices such as RedundantArray of Independent Disks (RAID) drives, solid state memory devices(e.g., USB memory, solid state drives (SSD) and any other type ofstorage media suitable for storing information. In the illustratedembodiment shown in FIG. 7, the system memory 706 can includenon-volatile memory 710 and/or volatile memory 712. A basic input/outputsystem (BIOS) can be stored in the non-volatile memory 710.

The computer 702 may include various types of computer-readable storagemedia in the form of one or more lower speed memory units, including aninternal (or external) hard disk drive (HDD) 714, a magnetic floppy diskdrive (FDD) 716 to read from or write to a removable magnetic disk 718,and an optical disk drive 720 to read from or write to a removableoptical disk 722 (e.g., a CD-ROM or DVD). The HDD 714, FDD 716 andoptical disk drive 720 can be connected to the system bus 708 by a HDDinterface 724, an FDD interface 726 and an optical drive interface 728,respectively. The HDD interface 724 for external drive implementationscan include at least one or both of Universal Serial Bus (USB) and IEEE1394 interface technologies.

The drives and associated computer-readable media provide volatileand/or nonvolatile storage of data, data structures, computer-executableinstructions, and so forth. For example, a number of program modules canbe stored in the drives and memory units 710, 712, including anoperating system 730, one or more application programs 732, otherprogram modules 734, and program data 736. In one embodiment, the one ormore application programs 732, other program modules 734, and programdata 736 can include, for example, the various applications and/orcomponents of the system 100.

A user can enter commands and information into the computer 702 throughone or more wire/wireless input devices, for example, a keyboard 738 anda pointing device, such as a mouse 740. Other input devices may includemicrophones, infra-red (IR) remote controls, radio-frequency (RF) remotecontrols, game pads, stylus pens, card readers, dongles, finger printreaders, gloves, graphics tablets, joysticks, keyboards, retina readers,touch screens (e.g., capacitive, resistive, etc.), trackballs,trackpads, sensors, styluses, and the like. These and other inputdevices are often connected to the processing unit 704 through an inputdevice interface 742 that is coupled to the system bus 708, but can beconnected by other interfaces such as a parallel port, IEEE 1394 serialport, a game port, a USB port, an IR interface, and so forth.

A monitor 744 or other type of display device is also connected to thesystem bus 708 via an interface, such as a video adaptor 746. Themonitor 744 may be internal or external to the computer 702. In additionto the monitor 744, a computer typically includes other peripheraloutput devices, such as speakers, printers, and so forth.

The computer 702 may operate in a networked environment using logicalconnections via wire and/or wireless communications to one or moreremote computers, such as a remote computer 748. The remote computer 748can be a workstation, a server computer, a router, a personal computer,portable computer, microprocessor-based entertainment appliance, a peerdevice or other common network node, and typically includes many or allof the elements described relative to the computer 702, although, forpurposes of brevity, only a memory/storage device 750 is illustrated.The logical connections depicted include wire/wireless connectivity to alocal area network (LAN) 752 and/or larger networks, for example, a widearea network (WAN) 754. Such LAN and WAN networking environments arecommonplace in offices and companies, and facilitate enterprise-widecomputer networks, such as intranets, all of which may connect to aglobal communications network, for example, the Internet.

When used in a LAN networking environment, the computer 702 is connectedto the LAN 752 through a wire and/or wireless communication networkinterface or adaptor 756. The adaptor 756 can facilitate wire and/orwireless communications to the LAN 752, which may also include awireless access point disposed thereon for communicating with thewireless functionality of the adaptor 756.

When used in a WAN networking environment, the computer 702 can includea modem 758, or is connected to a communications server on the WAN 754,or has other means for establishing communications over the WAN 754,such as by way of the Internet. The modem 758, which can be internal orexternal and a wire and/or wireless device, connects to the system bus708 via the input device interface 742. In a networked environment,program modules depicted relative to the computer 702, or portionsthereof, can be stored in the remote memory/storage device 750. It willbe appreciated that the network connections shown are exemplary andother means of establishing a communications link between the computerscan be used.

The computer 702 is operable to communicate with wire and wirelessdevices or entities using the IEEE 802 family of standards, such aswireless devices operatively disposed in wireless communication (e.g.,IEEE 802.11 over-the-air modulation techniques). This includes at leastWi-Fi (or Wireless Fidelity), WiMax, and Bluetooth™ wirelesstechnologies, among others. Thus, the communication can be a predefinedstructure as with a conventional network or simply an ad hoccommunication between at least two devices. Wi-Fi networks use radiotechnologies called IEEE 802.11x (a, b, g, n, etc.) to provide secure,reliable, fast wireless connectivity. A Wi-Fi network can be used toconnect computers to each other, to the Internet, and to wire networks(which use IEEE 802.3-related media and functions).

Some embodiments may be described using the expression “one embodiment”or “an embodiment” along with their derivatives. These terms mean that aparticular feature, structure, or characteristic described in connectionwith the embodiment is included in at least one embodiment. Theappearances of the phrase “in one embodiment” in various places in thespecification are not necessarily all referring to the same embodiment.Further, some embodiments may be described using the expression“coupled” and “connected” along with their derivatives. These terms arenot necessarily intended as synonyms for each other. For example, someembodiments may be described using the terms “connected” and/or“coupled” to indicate that two or more elements are in direct physicalor electrical contact with each other. The term “coupled,” however, mayalso mean that two or more elements are not in direct contact with eachother, but yet still co-operate or interact with each other.

It is emphasized that the Abstract of the Disclosure is provided toallow a reader to quickly ascertain the nature of the technicaldisclosure. It is submitted with the understanding that it will not beused to interpret or limit the scope or meaning of the claims. Inaddition, in the foregoing Detailed Description, it can be seen thatvarious features are grouped together in a single embodiment for thepurpose of streamlining the disclosure. This method of disclosure is notto be interpreted as reflecting an intention that the claimedembodiments need more features than are expressly recited in each claim.Rather, as the following claims reflect, inventive subject matter liesin less than all features of a single disclosed embodiment. Thus thefollowing claims are hereby incorporated into the Detailed Description,with each claim standing on its own as a separate embodiment. In theappended claims, the terms “including” and “in which” are used as theplain-English equivalents of the respective terms “comprising” and“wherein,” respectively. Moreover, the terms “first,” “second,” “third,”and so forth, are used merely as labels, and are not intended to imposenumerical requirements on their objects.

What has been described above includes examples of the disclosedarchitecture. It is, of course, not possible to describe everyconceivable combination of components and/or methodologies, but one ofordinary skill in the art may recognize that many further combinationsand permutations are possible. Accordingly, the novel architecture isintended to embrace all such alterations, modifications and variationsthat fall within the spirit and scope of the appended claims.

The invention claimed is:
 1. A computer-implemented method, comprising:receiving one or more images; receiving, by a processor, a request tovisually present a plurality of composite overlay user interface (UI)views of the one or more received images; requesting a list of aggregateoverlay information; receiving the list of aggregate overlay informationcomprising a plurality of overlay UI elements; creating the plurality ofcomposite overlay UI views by overlaying one or more of the overlay UIelements from the received list on multiple copies of one or more of thereceived images; and presenting the plurality of composite overlay UIviews in a grid format.
 2. The computer-implemented method of claim 1wherein the received list of overlay UI elements is ranked, furthercomprising: arranging the plurality of composite overlay UI views in thegrid format based on the rankings, wherein the composite overlay UIviews created using the highest ranked overlay UI element is positionedin the upper left corner of the grid format.
 3. The computer-implementedmethod of claim 1, further comprising: generating shareable compositeoverlay information to share as at least one social message and/or atleast one profile activity via the social networking system, wherein theshareable composite overlay information comprises a shareable image orshareable video, the at least one overlay UI element, and the backgroundimage represented by the image information or background videorepresented by the video information.
 4. The computer-implemented methodof claim 1, further comprising: modifying overlay position information,overlay size information, overlay orientation information associatedwith the at least one overlay UI element to align, orient, and/orproportion the at least one overlay UI element to at least one detectedfeature in a background image represented by the image information orbackground video represented by the video information.
 5. Thecomputer-implemented method of claim 1, further comprising: enablingmodification of at least one attribute of the at least one overlay UIelement, in response to receiving a request from a user to modify the atleast one overlay attribute associated with the at least one overlay UIelement in a composite overlay UI view.
 6. The computer-implementedmethod of claim 1, further comprising: receiving user contextinformation from the social networking overlay component, wherein usercontext information comprises a user communication context information,user location context information, user event context information, userexternal event context information, or user interest contextinformation; and modifying at least one overlay attribute of the atleast one overlay UI element represented by the overlay elementinformation based at least partially on the received user contextinformation.
 7. The computer-implemented method of claim 1, furthercomprising: requesting the overlay element information for at least oneoverlay UI element from the social networking overlay component based atleast partially on the at least one overlay element identifier in atleast one aggregate overlay information of the list of aggregate overlayinformation; and receiving the requested overlay element information forthe at least one overlay UI element, in response to the request foroverlay element information.
 8. An apparatus, comprising: a processorcircuit; and a memory operatively coupled to the processor circuit, thememory to store a software application comprising an overlay componentfor execution by the processor circuit, the overlay componentcomprising: an overlay management component to receive a request to:visually present a composite overlay preview UI view; receive one ormore images; request a social networking overlay component of a socialnetworking application for a list of aggregate overlay information;receive the list of aggregate overlay information from the socialnetworking overlay component, wherein the list of aggregate overlayinformation comprises a plurality of overlay UI elements represented byoverlay element information; and create a plurality of composite overlayUI views by overlaying one or more of the overlay UI elements from thereceived list on multiple copies of one or more of the received images;and an overlay rendering component to visually present on a displayscreen, the plurality of composite overlay UI views arranged in a gridformat.
 9. The apparatus of claim 8, wherein the received list ofoverlay UI elements is ranked, the overlay management component toarrange the plurality of composite overlay UI views in the grid formatbased on the rankings, wherein the composite overlay UI views using thehighest ranked overlay UI element is positioned in the upper left cornerof the grid format.
 10. The apparatus of claim 8, the overlay managementcomponent to generate shareable composite overlay information to shareas at least one social message and/or at least one profile activity viathe social networking system, wherein the shareable composite overlayinformation comprises a shareable image or shareable video, the at leastone overlay UI element, and the background image represented by theimage information or background video represented by the videoinformation.
 11. The apparatus of claim 8, wherein the request for thelist of aggregate overlay information comprises location informationand/or calendar event information.
 12. The apparatus of claim 8, whereinthe at least one overlay UI element having a cost indicated by anassociated overlay commercialization information for purchase by a user.13. The apparatus of claim 8, wherein a request to preview at least onecomposite overlay UI view is received from a social application and/or amessage application.
 14. The apparatus of claim 9, wherein the compositeoverlay preview UI view comprises a grid of at least one compositeoverlay UI element, each composite overlay element configured tovisually present a particular composite overlay UI view.
 15. At leastone non-transitory computer-readable storage medium comprisinginstructions that, when executed, cause a system to: receive one or moreimages; receive a request to visually present a plurality of compositeoverlay user interface (UI) views of the one or more received images;request a social networking overlay component of a social networkingapplication for a list of aggregate overlay information; receive thelist of aggregate overlay information from the social networking overlaycomponent, wherein the list of aggregate overlay information comprises aplurality of overlay UI elements represented by overlay elementinformation; create the plurality of composite overlay UI views byoverlaying one or more of the overlay UI elements from the received liston multiple copies of one or more of the received images; and presentthe plurality of composite overlay UI views in a grid format.
 16. The atleast one non-transitory computer-readable storage medium of claim 15,wherein the received list of overlay UI elements is ranked and whereinthe instructions, when executed, further cause the system to: arrangethe plurality of composite overlay UI views in the grid format based onthe rankings, wherein the composite overlay UI views using the highestranked overlay UI element is positioned in the upper left corner of thegrid format.
 17. The at least one non-transitory computer-readablestorage medium of claim 15, wherein the instructions, when executed,further cause the system to: generate shareable composite overlayinformation for sharing as at least one social message and/or at leastone profile activity via the social networking system, wherein theshareable composite overlay information comprises a shareable image orshareable video, the at least one overlay UI element, and the backgroundimage represented by the image information or background videorepresented by the video information.
 18. The at least onenon-transitory computer-readable storage medium of claim 15, wherein theinstructions, when executed, further cause the system to: modify overlayposition information, overlay size information, overlay orientationinformation associated with the at least one overlay UI element toalign, orient, and/or proportion the at least one overlay UI element toat least one detected feature in a background image represented by theimage information or background video represented by the videoinformation.
 19. The at least one non-transitory computer-readablestorage medium of claim 15, wherein the instructions, when executed,further cause the system to: receive user context information from thesocial networking overlay component, wherein user context informationcomprises user communication context information, user location contextinformation, user event context information, user external event contextinformation, or user interest context information; and modify at leastone overlay attribute of the at least one overlay UI element representedby the overlay element information based at least partially on thereceived user context information.
 20. The at least one non-transitorycomputer-readable storage medium of claim 15, wherein the instructions,when executed, further cause the system to: request the overlay elementinformation for at least one overlay UI element from the socialnetworking overlay component based at least partially on the at leastone overlay element identifier in at least one aggregate overlayinformation of the list of aggregate overlay information; and receivethe requested overlay element information for the at least one overlayUI element, in response to the request for overlay element information.